cURL से reCAPTCHA Enterprise टोकन का अनुरोध करें

solvethree द्वारापढ़ने में 4 मिनट

अपनी साइट के होस्टनाम, ऐक्शन और प्रॉक्सी के साथ टास्क बनाएँ। अगर वह pending या solving लौटाता है, तो लौटाई गई टास्क ID की पोलिंग करें। solution.token से टोकन तभी पढ़ें जब स्टेटस ready हो।

इस पेज पर

साइट, कुंजी और प्रॉक्सी तैयार करें

  • सुनिश्चित करें कि आपके शेल में cURL और jq उपलब्ध हैं।
  • SOLVETHREE_API_KEY को अपनी वर्कस्पेस API कुंजी पर सेट करें। ये कमांड सर्वर पर चलाएँ; कुंजी को ब्राउज़र कोड में न रखें।
  • SOLVETHREE_PROXY को उस प्रॉक्सी URL पर सेट करें जिसे आप हल करने और टोकन सबमिट करने के लिए इस्तेमाल करना चाहते हैं।
  • कंसोल में अपने वर्कस्पेस के लिए सक्रिय reCAPTCHA साइट प्रोफ़ाइल सेट अप करें। उदाहरण में accounts.example.com और login की जगह अपना होस्टनाम और ऐक्शन डालें।

होस्टनाम और ऐक्शन भेजने से साइट प्रोफ़ाइल नहीं बनती। हल करने का अनुरोध भेजने से पहले प्रोफ़ाइल सक्रिय होनी चाहिए।

इंतज़ार की अवधि स्पष्ट रूप से तय करके टास्क बनाएँ

cURL + jq · एक टास्क बनाएँ
# Set SOLVETHREE_API_KEY and SOLVETHREE_PROXY in your environment first.
# Replace the hostname and action with your active site profile.
jq -n \
  --arg proxy "$SOLVETHREE_PROXY" \
  --arg requestId "login-$(date +%s)-$$" \
  '{site:"accounts.example.com", action:"login", proxy:$proxy, requestId:$requestId}' \
| curl --fail-with-body --max-time 30 \
  'https://api.solvethree.com/v1/tasks?waitMs=15000' \
  -H "Authorization: Bearer $SOLVETHREE_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-binary @-

JSON बॉडी में site, action और एक proxy दिया जाता है। proxy या proxyCandidates में से ठीक एक ज़रूरी है। type या url न जोड़ें; recaptchaType छोड़ने पर enterprise-v3 चुना जाता है।

waitMs=15000 क्वेरी पैरामीटर टास्क बनाने वाले अनुरोध को 15 सेकंड तक इंतज़ार करने के लिए कहता है। यह URL में जाता है, JSON बॉडी में नहीं। cURL टाइमआउट 30 सेकंड है, जिससे सर्वर पर होने वाले उस इंतज़ार के अलावा नेटवर्क ओवरहेड के लिए भी समय मिलता है। रिस्पॉन्स आने पर भी टास्क अंतिम स्थिति तक न पहुँचा हो सकता है।

रिस्पॉन्स पढ़ें और अधूरे टास्क की पोलिंग करें

बॉडी को टास्क रिस्पॉन्स मानने से पहले HTTP त्रुटि जाँचें। दोनों कमांड --fail-with-body इस्तेमाल करते हैं; विफल HTTP अनुरोध को उस टास्क से अलग सँभालें जिसका स्टेटस failed है।

तैयार रिस्पॉन्स का यह स्वरूप होता है। नीचे दिए गए मान प्लेसहोल्डर हैं, सबमिट करने योग्य टोकन नहीं।

तैयार प्रतिक्रिया का उदाहरण · प्लेसहोल्डर क्रेडेंशियल
{
  "id": "example-task",
  "status": "ready",
  "solution": {
    "token": "EXAMPLE_TOKEN",
    "userAgent": "EXAMPLE_USER_AGENT",
    "secChUa": "EXAMPLE_CLIENT_HINTS"
  }
}
लौटाए गए टास्क स्टेटस के अनुसार क्या करें
लौटाए गए टास्क स्टेटस के अनुसार क्या करें
स्थितिअगली कार्रवाई
pending या solvingलौटाई गई id सुरक्षित रखें और वही टास्क प्राप्त करें। अभी इस्तेमाल करने योग्य समाधान नहीं है; उसकी जगह नया टास्क न बनाएँ।
तैयारपोलिंग बंद करें और solution.token, solution.userAgent और solution.secChUa पढ़ें।
failedपोलिंग बंद करें और errorCode और error जाँचें। विफल प्रयासों का शुल्क वापस मिलता है। दूसरा टास्क शुरू करने से पहले कारण दूर करें।

अगर रिस्पॉन्स अंतिम स्थिति में नहीं है, तो अपने एनवायरनमेंट में TASK_ID को लौटाई गई id पर सेट करें, फिर टास्क प्राप्त करें:

Task API · मौजूदा टास्क प्राप्त करें
curl --fail-with-body --max-time 30 \
  "https://api.solvethree.com/v1/tasks/$TASK_ID?waitMs=15000" \
  -H "Authorization: Bearer $SOLVETHREE_API_KEY"

यह GET परिणाम के लिए 15 सेकंड तक इंतज़ार करता है और इसका HTTP टाइमआउट 30 सेकंड है। waitMs के बिना GET इंतज़ार किए बिना लौटता है। GET केवल तब तक दोहराएँ जब तक स्टेटस pending या solving है, और कॉल करने वाले कोड में कुल समय-सीमा तय करें ताकि पोलिंग लूप अनिश्चित काल तक न चलता रहे।

अगर टास्क विफल हो, तो क्रेडिट की समस्या मान लेने के बजाय उसकी त्रुटि का विवरण इस्तेमाल करें। उदाहरण के लिए, site-unreachable आने पर लक्ष्य तक पहुँच की जाँच करनी चाहिए, न कि बिना बदलाव के वही इनपुट आँख मूँदकर दोबारा भेजने चाहिए।

टोकन सबमिट करें

लक्षित एप्लिकेशन के अनुरोध में solution.token का उपयोग करें। टास्क का id केवल टास्क प्राप्त करने के लिए है; यह CAPTCHA टोकन नहीं है। टोकन कहाँ देना है, यह लक्ष्य के फ़ॉर्म या API पर निर्भर करता है, इसलिए लक्ष्य पर सबमिट करने के लिए कोई सार्वभौमिक कमांड नहीं है।

टोकन सबमिट करते समय लौटाए गए solution.userAgent और solution.secChUa के साथ सफल प्रॉक्सी का उपयोग करें। ऊपर दिए गए एकल-प्रॉक्सी उदाहरण में उसी SOLVETHREE_PROXY का उपयोग करें। किसी असंबंधित ब्राउज़र पहचान या लक्ष्य URL को इसमें न मिलाएँ।

ready का अर्थ है कि solvethree ने समाधान जनरेट कर दिया है। लक्ष्य एप्लिकेशन ने आपका अनुरोध स्वीकार किया या नहीं, यह जानने के लिए उसकी प्रतिक्रिया अलग से जाँचें।

अन्य प्रश्न

क्या यह Google के siteverify API जैसा ही है?

नहीं। Google का siteverify पहले से मौजूद टोकन की जाँच करता है और इसके लिए वेबसाइट मालिक का सत्यापन सीक्रेट चाहिए। solvethree API आपकी वर्कस्पेस API कुंजी से समाधान जनरेट करता है। टास्क अनुरोध में Google का सत्यापन सीक्रेट न डालें।

अपना पहला टास्क चलाएँ।

$5 वर्कस्पेस क्रेडिट के साथ शुरुआत करें।

वर्कस्पेस बनाएँ
cURL से reCAPTCHA Enterprise टोकन का अनुरोध करें · solvethree