सपोर्टेड टास्क टाइप
API विधियाँ
आर्टिकल
ट्यूटोरिअल
GitHub
दस्तावेज़ मेन्यू

RecaptchaV3TaskProxyless: Google reCAPTCHA v3 को हल करें

इस तरह के टास्क ऑब्जेक्ट के तहत Google reCAPTCHA v3 को किसी कर्मचारी के कंप्यूटर पर हल किया जाता है। इस टास्क को हमारे अपने प्रॉक्सी सर्वरों और/या कर्मचारियों के IP पतों के माध्यम से हमारी सर्विस द्वारा पूरा किया जाता है।

गौरतलब है कि reCAPTCHA v2-invisible और reCAPTCHA v3 में एक फ़र्क होता है। देखने में एक जैसे होने के चलते वे आपको कंफ्यूज़ कर सकते हैं। लेकिन अपने लिए सही टाइप का आसानी से पता लगाने का एक तरीका होता है: उसे हमारे API के माध्यम से v2-invisible और v3 के तौर पर हल करने की कोशिश करें। अपने किसी ना किसी प्रयास में आपको एक एरर मैसेज दिखाई दे जाएगा, जबकि दूसरे प्रयास में वह नहीं दिखेगा।

हम अपने कर्मचारियों को उनके रीकैप्चा "स्कोर" के लिए टेस्ट करके उन्हें 3 समूहों (कतारों) में बाँट देते हैं: 0.3, 0.7 और 0.9। खाली बैठे कर्मचारियों की संख्या के आधार पर हरेक समूह का शुल्क अलग-अलग हो सकता है। minScore प्रॉपर्टी से गुज़रकर आप यह परिभाषित करते हैं कि आपकी टास्क किस कतार में जाएगी। हमारे अधिकांश उपलब्ध कर्मचारियों का 0.3 का स्कोर व कम से कम 0.9 की रकम होती है।

रीकैप्चा v3 का एक उदाहरण। आमतौर पर पेज के निचले दाएँ कोने में लोगो वाला एक बैज होता है। लेकिन इसे JavaScript के माध्यम से आसानी से हटाया जा सकता है।

टास्क ऑब्जेक्ट

प्रॉपर्टी टाइप आवश्यक लक्ष्य
type स्ट्रिंग हाँ RecaptchaV3TaskProxyless
websiteURL स्ट्रिंग हाँ किसी लक्षित वेब पेज का पता। यह वेबसाइट में कहीं भी पाया जा सकता है, किसी सदस्य वाले एरिया में भी। हमारे कर्मचारी वहां जाते तो नहीं, पर अपने जाने की सिमुलेशन ज़रूर कर देते हैं।
websiteKey स्ट्रिंग हाँ रीकैप्चा वेबसाइट वाली कुंजी। इस लेख में जानें कि उसे कैसे ढूँढा जाता है।
minScore डबल हाँ यह किसी कर्मचारी को एक आवश्यक स्कोर के आधार पर फ़िल्टर कर देता है। यह वैल्यू इनमें से कोई एक हो सकती है:
0.3
0.7
0.9
pageAction स्ट्रिंग नहीं
रीकैप्चा की "एक्शन" वैल्यू। वेबसाइट का मालिक इस मानदंड के माध्यम से पेज पर उपयोगकर्ता की गतिविधि को परिभाषित करता है।
उदाहरण के तौर पर:

grecaptcha.execute('site_key', {action:'login_test'})
isEnterprise Boolean नहीं अगर आप इस v3 को एंटरप्राइज़ API के माध्यम से हल करना चाहते हैं तो इस फ्लैग को "true" पर सेट कर दें। डिफ़ॉल्ट वैल्यू "false" होती है व रीकैप्चा को नॉन-एंटरप्राइज़ API के माध्यम से हल किया जाता है। इस उदाहरण की ही तरह इसका पता भी किसी JavaScript कॉल से लगाया जा सकता है:

grecaptcha.enterprise.execute('site_key', {..})
apiDomain स्ट्रिंग नहीं इस पैरामीटर का उपयोग उस डोमेन नाम को भेजने के लिए करें जिससे रिकैप्चा स्क्रिप्ट प्रस्तुत की जानी चाहिए। दो में से केवल एक मान हो सकता है: "www.google.com" या "www.recaptcha.net"। इस पैरामीटर का उपयोग तब तक न करें जब तक कि आप यह न समझ लें कि आप क्या कर रहे हैं।

अनुरोध का उदाहरण

CURL
          curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY_HERE",
    "task":
        {
            "type":"RecaptchaV3TaskProxyless",
            "websiteURL":"http://mywebsite.com/recaptcha/test.php",
            "websiteKey":"6Lc_aCMTAAAAABx7u2N0D1XnVbI_v6ZdbM6rYf16",
            "minScore": 0.3,
            "pageAction": "myverify",
            "isEnterprise": false
        },
    "softId": 0
}' https://api.anti-captcha.com/createTask
        
PHP
          <?php

//git clone git@github.com:AdminAnticaptcha/anticaptcha-php.git

include("anticaptcha.php");
include("recaptchaV3.php");

$api = new RecaptchaV3();
$api->setVerboseMode(true);

//your anti-captcha.com account key
$api->setKey("YOUR_API_KEY_HERE");

//target website address
$api->setWebsiteURL("http://makeawebsitehub.com/recaptcha/test.php");

//recaptcha key from target website
$api->setWebsiteKey("6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ");

//parameters for V3
//score you would like to have
$api->setMinScore(0.9);
//optional page action
$api->setPageAction("some_action");

//Specify softId to earn 10% commission with your app.
//Get your softId here: https://anti-captcha.com/clients/tools/devcenter
$api->setSoftId(0);

//create task in API
if (!$api->createTask()) {
    $api->debout("API v2 send failed - ".$api->getErrorMessage(), "red");
    return false;
}

$taskId = $api->getTaskId();

//wait in a loop for max 300 seconds till task is solved
if (!$api->waitForResult(300)) {
    echo "could not solve captcha\n";
    echo $api->getErrorMessage()."\n";
} else {

    $gResponse    =   $api->getTaskSolution();
    echo "\n";
    echo "your recaptcha token: $gResponse\n\n";

    //check result, then:
    $api->reportCorrectRecaptcha();
    //or
    //$api->reportIncorrectRecaptcha();

}
        
Python
          #pip3 install anticaptchaofficial

from anticaptchaofficial.recaptchav3proxyless import *

solver = recaptchaV3Proxyless()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://website.com")
solver.set_website_key("SITE_KEY")
solver.set_page_action("home_page")
solver.set_min_score(0.9)

# Specify softId to earn 10% commission with your app.
# Get your softId here: https://anti-captcha.com/clients/tools/devcenter
solver.set_soft_id(0)

g_response = solver.solve_and_return_solution()
if g_response != 0:
    print "g-response: "+g_response
else:
    print "task finished with error "+solver.error_code
        
NodeJS
          //npm install @antiadmin/anticaptchaofficial
//https://github.com/AdminAnticaptcha/anticaptcha-npm

const ac = require("@antiadmin/anticaptchaofficial");

ac.setAPIKey('YOUR_API_KEY_HERE');

//Specify softId to earn 10% commission with your app.
//Get your softId here: https://anti-captcha.com/clients/tools/devcenter
ac.setSoftId(0);

ac.solveRecaptchaV3('http://DOMAIN.COM',
    'WEBSITE_KEY',
    0.3, //minimum score required: 0.3, 0.7 or 0.9
    'PAGE_ACTION_CAN_BE_EMPTY')
    .then(gresponse => {
        console.log('g-response: '+gresponse);
    })
    .catch(error => console.log('test received error '+error));

        
C#
          //git clone git@github.com:AdminAnticaptcha/anticaptcha-csharp

using System;
using Anticaptcha_example.Api;
using Anticaptcha_example.Helper;
using Newtonsoft.Json.Linq;

namespace Anticaptcha_example
{
    internal class Program
    {
        private static void Main() {

            DebugHelper.VerboseMode = true;

            var api = new RecaptchaV3Proxyless
            {
                ClientKey = "YOUR_API_KEY_HERE",
                WebsiteUrl = new Uri("http://makeawebsitehub.com/recaptcha/test.php"),
                WebsiteKey = "6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ",
                PageAction = "login_or_register",
                IsEnterprise = false,

                // Specify softId to earn 10% commission with your app.
                // Get your softId here:
                // https://anti-captcha.com/clients/tools/devcenter
                SoftId = 0
            };
            api.MinScore(0.3)

            if (!api.CreateTask())
                DebugHelper.Out("API v2 send failed. " + api.ErrorMessage, DebugHelper.Type.Error);
            else if (!api.WaitForResult())
                DebugHelper.Out("Could not solve the captcha.", DebugHelper.Type.Error);
            else
                DebugHelper.Out("Result: " + api.GetTaskSolution().GRecaptchaResponse, DebugHelper.Type.Success);

        }
    }
}

        
Java
          //git clone git@github.com:AdminAnticaptcha/anticaptcha-java.git

DebugHelper.setVerboseMode(true);

RecaptchaV3Proxyless api = new RecaptchaV3Proxyless();
api.setClientKey("YOUR_API_KEY_HERE");
api.setWebsiteUrl(new URL("http://getcaptchajob.com/"));
api.setWebsiteKey("6LfE4ZIUAAAAAGSYvvoszRvEC9IgFVyXwGkypn-W");
api.setPageAction("testPageAction");
api.setMinScore(0.9);

//Specify softId to earn 10% commission with your app.
//Get your softId here: https://anti-captcha.com/clients/tools/devcenter
api.setSoftId(0);

if (!api.createTask()) {
    DebugHelper.out(
            "API v2 send failed. " + api.getErrorMessage(),
            DebugHelper.Type.ERROR
    );
} else if (!api.waitForResult()) {
    DebugHelper.out("Could not solve the captcha.", DebugHelper.Type.ERROR);
} else {
    DebugHelper.out("Result: " + api.getTaskSolution().getGRecaptchaResponse(), DebugHelper.Type.SUCCESS);
}
        

रिस्पांस का उदाहरण

एरर-मुक्त JSON
          {
    "errorId": 0,
    "taskId": 7654321
}
        
एरर-युक्त JSON
          {
    "errorId": 1,
    "errorCode": "ERROR_KEY_DOES_NOT_EXIST",
    "errorDescription": "Account authorization key not found in the system"
}
        

सॉल्यूशन को पुनः प्राप्त करें

सॉल्यूशन का अनुरोध करने के लिए getTaskResult विधि का इस्तेमाल करें। अपना पहला अनुरोध करने से पहले कर्मचारी को थोड़ा वक़्त दें, जैसे लगभग 5 सेकंड का। अगर कर्मचारी इसके बाद भी बिज़ी दिखाई देता है तो कृपया 3 सेकंड में पुनः प्रयास करें।

टास्क सॉल्यूशन ऑब्जेक्ट

प्रॉपर्टी टाइप लक्ष्य
gRecaptchaResponse स्ट्रिंग लक्षित वेबसाइट पर सबमिट किए गए फॉर्म से इंटरैक्ट करने के लिए आवश्यक टोकन स्ट्रिंग।

रिस्पांस का उदाहरण

एरर-मुक्त JSON
          {
    "errorId":0,
    "status":"ready",
    "solution":
    {
        "gRecaptchaResponse":"3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3"
    },
    "cost":"0.001500",
    "ip":"46.98.54.221",
    "createTime":1472205564,
    "endTime":1472205570,
    "solveCount":"0"
}