2Captcha reCAPTCHA एकीकरण को solvethree पर ले जाएँ
यह केवल एंडपॉइंट बदलना नहीं है। clientKey/task एनवेलप को Bearer कुंजी से प्रमाणीकृत फ़्लैट अनुरोध से बदलें, solvethree में लक्ष्य साइट कॉन्फ़िगर करें और प्रॉक्सी दें। मौजूदा 2Captcha टास्क ID को नए solvethree टास्क से अलग रखें।
इस पेज पर
जिस टास्क को माइग्रेट कर रहे हैं, उसकी जाँच करें
यह माइग्रेशन 2Captcha API v2 के ज़रिए reCAPTCHA v3 Enterprise को कवर करता है। इसमें पुराने in.php/res.php API का वर्णन नहीं है। साथ ही, 2Captcha का API संस्करण CAPTCHA संस्करण नहीं है: solvethree reCAPTCHA v2 का समर्थन नहीं करता।
प्रारंभिक अनुरोध में 2Captcha createTask में दस्तावेज़ित एनवेलप का उपयोग होता है: क्रेडेंशियल प्रदाता-विशिष्ट टास्क ऑब्जेक्ट के बाहर होते हैं।
{
"clientKey": "TWO_CAPTCHA_API_KEY",
"task": {
"type": "RecaptchaV3TaskProxyless",
"websiteURL": "https://accounts.example.com/login",
"websiteKey": "PUBLIC_SITE_KEY",
"minScore": 0.7,
"pageAction": "login",
"isEnterprise": true
}
}इस ऑब्जेक्ट को बिना बदले नए API में न ले जाएँ। विशेष रूप से, नीचे दिए गए solvethree अनुरोध में प्रॉक्सीलेस टास्क प्रकार और minScore की कोई जगह नहीं है।
साइट कॉन्फ़िगर करें, फिर अनुरोध बदलें
पहले solvethree कंसोल में लक्ष्य साइट सेट अप करें। उस होस्टनाम के लिए अनुरोध हल करने से पहले आपके वर्कस्पेस में एक सक्रिय साइट प्रोफ़ाइल होनी चाहिए। होस्टनाम और action भेजने से प्रोफ़ाइल नहीं बनती।
https://api.solvethree.com पर POST /v1/tasks से नए टास्क बनाएँ और Authorization: Bearer के साथ अपने वर्कस्पेस की API कुंजी इस्तेमाल करें। यह कुंजी सर्वर पर ही रखें। टास्क बनाने का अनुबंध नेस्टेड task ऑब्जेक्ट के बजाय फ़्लैट JSON बॉडी इस्तेमाल करता है।
| 2Captcha API v2 इनपुट | solvethree में विकल्प |
|---|---|
| clientKey | वर्कस्पेस की API कुंजी Authorization हेडर में दें, JSON बॉडी में नहीं। |
| task रैपर | इसे हटा दें; टास्क फ़ील्ड शीर्ष स्तर पर भेजें। |
| type: RecaptchaV3TaskProxyless | type न भेजें। proxy या proxyCandidates में से ठीक एक दें। |
| websiteURL | site में केवल होस्टनाम दें: accounts.example.com। url न भेजें। |
| websiteKey | इस फ़ील्ड को टास्क में कॉपी करने के बजाय कंसोल में लक्ष्य साइट की प्रोफ़ाइल कॉन्फ़िगर करें। |
| pageAction | action में लक्ष्य का action मान दें, जैसे login। |
| isEnterprise | इसे न भेजें; recaptchaType का डिफ़ॉल्ट मान enterprise-v3 है। |
| minScore | इसे न भेजें; इसे solvethree अनुरोध में कॉपी न करें। |
{
"site": "accounts.example.com",
"action": "login",
"proxy": "http://user:[email protected]:8080",
"requestId": "example_login_001"
}उदाहरण के होस्टनाम, action और proxy को अपने लक्ष्य के मानों से बदलें। अनुरोध भेजने से पहले requestId चुनें और टाइमआउट से रिकवरी के लिए उसे सहेजें; हर नए लॉजिकल टास्क के लिए नया मान इस्तेमाल करें।
उदाहरण में एक proxy इस्तेमाल होता है। विकल्प के तौर पर, proxyCandidates अधिकतम बारह अलग-अलग HTTP या HTTPS proxy URL स्वीकार करता है, जिनमें पाथ, क्वेरी या फ़्रैगमेंट न हों। दोनों में से केवल एक फ़ील्ड भेजें, दोनों कभी नहीं। उम्मीदवार प्रॉक्सी से सेवा वैकल्पिक निकास आज़मा सकती है; वे काम करने वाले प्रॉक्सी की गारंटी नहीं देते।
पोलिंग और टाइमआउट हैंडलिंग बदलें
चल रहे 2Captcha टास्क के लिए उसका getTaskResult फ़्लो ही इस्तेमाल करें, साथ में उसके क्रेडेंशियल, टास्क ID और दस्तावेज़ में दी गई पोलिंग नीति का पालन करें। किसी दूसरी सेवा का टास्क ID solvethree टास्क हैंडल नहीं है।
- 1.
टास्क बनाने की प्रतिक्रिया सँभालें
सफलता वाला पेलोड पढ़ने से पहले जाँचें कि HTTP प्रतिक्रिया असफल तो नहीं है। reCAPTCHA टास्क बनाते समय डिफ़ॉल्ट रूप से 15 सेकंड तक प्रतीक्षा होती है, लेकिन ऐसा टास्क भी लौट सकता है जो अभी अंतिम स्थिति में न पहुँचा हो। अगर उसकी स्थिति पहले से ready है, तो पोलिंग लूप शुरू किए बिना समाधान इस्तेमाल करें।
- 2.
केवल अधूरे टास्क की पोलिंग करें
GET /v1/tasks/:id से solvethree टास्क प्राप्त करें। पुरानी processing जाँच की जगह pending और solving की जाँच करें; दोनों का अर्थ है कि टास्क पूरा नहीं हुआ है। केवल ready में उपयोग योग्य समाधान होता है।
- 3.
URL में प्रतीक्षा का समय सेट करें
GET पोलिंग डिफ़ॉल्ट रूप से प्रतीक्षा नहीं करती। लॉन्ग पोलिंग के लिए URL के waitMs क्वेरी पैरामीटर को अधिकतम 15000 पर सेट करें, JSON फ़ील्ड को नहीं। अपने HTTP क्लाइंट के टाइमआउट में अनुरोधित प्रतीक्षा और नेटवर्क ओवरहेड, दोनों के लिए समय रखें।
- 4.
failed पर रुकें
errorCode और error पढ़ें, फिर उस टास्क की पोलिंग रोक दें। असफल सॉल्व का शुल्क वापस किया जाता है। site-unreachable जैसी त्रुटि की जाँच करनी चाहिए; हर विफलता को क्रेडिट की समस्या न मानें और अमान्य इनपुट बिना बदले बार-बार न भेजें।
कनेक्शन टाइमआउट यह साबित नहीं करता कि टास्क बनाना असफल रहा। अगर आपको टास्क ID मिला है, तो वही टास्क प्राप्त करें। अगर नहीं मिला, तो नया सॉल्व बनाने के बजाय मौजूदा टास्क रिकवर करने के लिए उसी requestId के साथ वही अनुरोध दोहराएँ। उसी requestId का दोबारा इस्तेमाल करते समय टास्क के इनपुट बदलने से कॉन्फ़्लिक्ट होता है।
अपने अडैप्टर में HTTP त्रुटियों को टास्क की अंतिम विफलताओं से अलग रखें। पोलिंग अनुबंध और विफलता सँभालना इन दोनों रास्तों का वर्णन करते हैं; 2Captcha के एरर पेलोड पार्सर का दोबारा इस्तेमाल न करें।
टोकन निकालने और सबमिट करने का तरीका अपडेट करें
पुराने अडैप्टर में टोकन खोजने के तरीके को ready स्थिति वाले solvethree टास्क के solution.token से बदलें। जहाँ लक्ष्य अपने reCAPTCHA मान की अपेक्षा करता है, वहाँ यह टोकन सबमिट करें—टास्क ID या पूरा solution ऑब्जेक्ट नहीं।
टोकन सबमिट करते समय लौटाए गए userAgent और secChUa ब्राउज़र पहचान का इस्तेमाल सफल प्रॉक्सी के साथ करें। अगर आपने proxyCandidates दिया था, तो सबमिट करने के लिए कोई दूसरा उम्मीदवार चुनने के बजाय सफल प्रॉक्सी ही इस्तेमाल करें।
ready टास्क का अर्थ है कि समाधान बन गया है, यह नहीं कि वेबसाइट ने आपका एप्लिकेशन अनुरोध स्वीकार कर लिया है। अगर लक्ष्य उसे अस्वीकार करता है, तो दूसरे सॉल्व के लिए भुगतान करने से पहले भेजे जा रहे टोकन, action, लक्ष्य URL, प्रॉक्सी और ब्राउज़र पहचान की जाँच करें।
स्रोत और API संदर्भ
अपना पहला टास्क चलाएँ।
$5 वर्कस्पेस क्रेडिट के साथ शुरुआत करें।