ホーム 操作ガイド チュートリアル ログイン
サポートされるタスクタイプ
APIメソッド
記事
チュートリアル
GitHub
操作ガイドメニュー

RecaptchaV3TaskProxyless: Google Recaptcha v3の解決

このタイプのタスクオブジェクトは、ワーカーのコンピュータでGoogle RecaptchaV3を解決するために必要です。 このタスクは、独自のプロキシサーバまたはワーカーのIPアドレス(あるいはその両方)を使用して当社のサービスによって実行されます。

RecapchaV2-invisibleとRecapchaV3には違いがあることにご注意ください。両者は同じように見えるので、混乱させるかもしれません。正しいタイプを簡単に判別する方法があります。V2-invisibleとV3でAPIを使用して解決してみてください。どちらかの試みでエラーが発生する場合、もう一方ではエラーが発生しません。

ワーカーのrecapcha"score"をテストし、次の3つのグループ(キュー)に分類します。0.30.7、および0.9。それぞれの価格は、アイドル状態のワーカー数によって若干異なる場合があります。プロパティminScoreを渡すことで、タスクが入力するキューを定義します。利用可能なワーカーのほとんどはスコアが0.3で、最低金額は0.9です

RecapchaV3に関する詳細は、これFAQセクションをご参照ください。

Recapchav3の例。通常、ページの右下にロゴバッジがあります。しかし、Javascriptでは簡単に削除できます。

タスクオブジェクト

プロパティ タイプ 必須 目的
type 文字列 はい RecaptchaV3TaskProxyless
websiteURL 文字列 はい ターゲットページのアドレス。ユーザーエリアでも、ウェブサイトのどこにでも挿入できます。ワーカーは実際にアクセスしませんが、代わりに訪問をシミュレートします。
websiteKey 文字列 はい ReCAPTCHAサイトキー。この記事でご確認ください。
minScore ダブル はい 必要なスコアでワーカーをフィルタリングします。値は次のいずれかになります。
0.3
0.7
0.9
pageAction 文字列 いいえ
Recapchaの"action"値。ウェブサイトの所有者は、このパラメータを使用して、ユーザがページで何をしているかを定義します。
例:

grecaptcha.execute('site_key', {action:'login_test'})
isEnterprise ブール型 いいえ エンタープライズAPIを使用してこのV3を解決する必要がある場合は、このフラグを"true"に設定します。 デフォルト値は"false"であり、Recaptchaは非企業APIで解決されます。次の例のように、javascriptコールによって判別できます。

grecaptcha.enterprise.execute('site_key', {..})
apiDomain 文字列 いいえ このパラメーターを使用して、Recaptchaスクリプトの提供元となるドメイン名を送信します。 「www.google.com」または「www.recaptcha.net」の2つの値のうちの1つのみを持つことができます。何をしているかを理解していない限り、このパラメーターを使用しないでください。

リクエスト例

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"
}