ہوم ڈاکومنٹیشن ٹیوٹوریلز سائن ان
API طریقہ کار
سپورٹ کیے جانے والے ٹاسکس کی اقسام
آرٹیکلز
ٹیوٹوریلز
GitHub
ڈاکومنٹیشن مینو

GeeTestTaskProxyless: پراکسی کے بغیر geetest.com سے captcha حل کریں

اس قسم کا کام ہمارے کارکنوں کے براؤزرز میں GeeTest کیپچوں کو حل کرتا ہے۔ آپ کی ایپ ویب سائٹ ایڈریس، جی ٹی کی، چیلنج کلید جمع کراتی ہے اور ٹاسک مکمل ہونے کے بعد 3 ٹوکنز پر مشتمل ایک حل حاصل کرتا ہے۔ ورژن GeeTest ورژن 4 کے لیے آؤٹ پٹ 5 اقدار پر مشتمل ہے اور چیلنج کلید کی ضرورت نہیں ہے۔

ہر چیز GeeTestTask کی طرح ہے، سوائے اس کے کہ ہمیں پراکسی کی ضرورت نہیں ہے اور ہم اسے اپنے IP پتوں سے حل کرتے ہیں۔

مثالیں

ٹاسک آبجیکٹ

پراپرٹی قسم درکار ہے مقصد
type اسٹرنگ ہاں GeeTestTaskProxyless
websiteURL اسٹرنگ ہاں مطلوبہ ویب پیج کا ایڈریس۔ ویب سائٹ پر کہیں بھی دیکھا جا سکتا ہے، یہاں تک کہ ممبر کے علاقے میں بھی۔ ہمارے کارکن وہاں نہیں جاتے، بلکہ اس کی بجائے اس دورے کو سیمولیٹ کرتے ہیں۔
gt اسٹرنگ ہاں ڈومین عوامی کلید، شازو نادر ہی اپ ڈیٹ کی جاتی ہے۔
challenge اسٹرنگ نہیں ٹوکن کی کلید تبدیل کرنا۔ ہر captcha کے لیے نئی حاصل کرنا یقینی بنائیں، بصورت دیگر آپ کو ٹاسک کی خرابی کے لیے چارج کیا جائے گا۔ ورژن 3 کے لیے درکار ہے۔ ورژن 4 کے لیے درکار نہیں۔
geetestApiServerSubdomain اسٹرنگ نہیں آپشنل API سب ڈومین: کچھ تکمیلوں کے لیے درکار ہو سکتا ہے۔
geetestGetLib اسٹرنگ نہیں کچھ تکمیلوں کے لیے ضروری ہے۔ JSON کو انکوڈ شدہ اسٹرنگ میں بھیجیں۔ براؤزر ڈویلپر ٹولز میں ویلیو کا سراغ لگایا جاسکتا ہے۔ “initGeetest” خصوصیت استعمال کرنے سے پہلے بریک پوائنٹ رکھیں۔
version انٹیگر نہیں ورژن نمبر۔ ڈیفالٹ ورژن 3 ہے۔ تائید شدہ ورژن: 3 اور 4۔
initParameters آبجیکٹ نہیں ورژن 4 کے لیے اضافی ابتدائی پیرامیٹرز

درخواست کی مثال (V3)

CURL
          curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY_HERE",
    "task":
        {
            "type":"GeeTestTaskProxyless",
            "websiteURL":"http://mywebsite.com/geetest/test.php",
            "gt":"874703612e5cac182812a00e273aad0d",
            "challenge":"a559b82bca2c500101a1c8a4f4204742"
        },
    "softId": 0
}' https://api.anti-captcha.com/createTask
        
PHP
          <?php

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

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

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

//grabbing challenge key ... ";
$data = json_decode(file_get_contents("https://www.geetest.com/demo/gt/register-enIcon-official?t=1547634498036"), true);

echo "grabbed data:\n";
print_r($data);

if (!isset($data["gt"]) && !isset($data["challange"])) {
    echo "something went wrong, probably example was changed or network is inaccessible\n";
    exit;
}

$challenge  =   $data["challenge"];
$gt         =   $data["gt"];

echo "setting gt=$gt, challenge=$challenge\n";
$api->setWebsiteURL("https://www.geetest.com/en/");
$api->setGTKey($gt);
$api->setChallenge($challenge);

//optional API subdomain, make sure you understand what to set here
$api->setAPISubdomain("optional.subdomain.api.geetest.com");

//read the docs about this optional parameter
$api->setGeetestLib("{\"customlibs\":\"url-to-lib.js\"}");

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

//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 {

    echo "your geetest tokens:\n";
    print_r($api->getTaskSolution());

}
        
Python
          #pip3 install anticaptchaofficial

from anticaptchaofficial.geetestproxyless import *

solver = geetestProxyless()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://address.com")
solver.set_gt_key("CONSTANT_GT_KEY")
solver.set_challenge_key("VARIABLE_CHALLENGE_KEY")

# optional API subdomain, make sure you understand what to set here
# solver.set_js_api_domain("custom-domain.geetest.com")

# getLib payload, see documentation for explanation of this
# solver.set_geetest_lib("{\"customlibs\":\"url-to-lib.js\"}")

# 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)

token = solver.solve_and_return_solution()
if token != 0:
    print "result tokens: "
    print token
else:
    print "task finished with error "+solver.error_code
        
NodeJS
          //npm -i @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.solveGeeTestProxyless('http://DOMAIN.COM',
    'GT',
    'CHALLENGE',
    'API_SUBDOMAIN',
    'GET_LIB')
    .then(result => {
        console.log('result: ');
        console.log(result);
    })
    .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 GeeTestProxyless()
            {
                ClientKey = "YOUR_API_KEY_HERE",
                WebsiteUrl = new Uri("http://www.supremenewyork.com"),
                WebsiteKey = "b6e21f90a91a3c2d4a31fe84e10d0442",
                WebsiteChallenge = "169acd4a58f2c99770322dfa5270c221"

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

            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 CHALLENGE: " + api.GetTaskSolution().Challenge, DebugHelper.Type.Success);
                DebugHelper.Out("Result SECCODE: " + api.GetTaskSolution().Seccode, DebugHelper.Type.Success);
                DebugHelper.Out("Result VALIDATE: " + api.GetTaskSolution().Validate, DebugHelper.Type.Success);
            }

        }
    }
}

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

package com.anti_captcha;

import com.anti_captcha.Api.GeeTestProxyless;
import com.anti_captcha.Helper.DebugHelper;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.Iterator;
import java.util.concurrent.ThreadLocalRandom;

public class Main {

    public static void main(String[] args) throws InterruptedException, MalformedURLException, JSONException {
        DebugHelper.setVerboseMode(true);

        GeeTestProxyless api = new GeeTestProxyless();
        api.setClientKey("YOUR_API_KEY_HERE");
        api.setWebsiteUrl(new URL("http://biletmaster.com/"));
        api.setWebsiteKey("be33de396f8d04030f6eca8fbd225071");
        api.setWebsiteChallenge("grabbed_one_time_challenge_32bytes");

        //optional API subdomain, make sure you understand what to set here
        //api.setGeetestApiServerSubdomain("optional.subdomain.api.geetest.com");

        //read the docs about this optional parameter
        //api.setGeetestLib("{\"customlibs\":\"url-to-lib.js\"}");

        //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 CHALLENGE: " + api.getTaskSolution().getChallenge(), DebugHelper.Type.SUCCESS);
            DebugHelper.out("Result SECCODE: " + api.getTaskSolution().getSeccode(), DebugHelper.Type.SUCCESS);
            DebugHelper.out("Result VALIDATE: " + api.getTaskSolution().getValidate(), DebugHelper.Type.SUCCESS);
        }
    }

}

        

GeeTest V4

CURL
          curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY_HERE",
    "task":
        {
            "type":"GeeTestTaskProxyless",
            "websiteURL":"http://mywebsite.com/geetest/test.php",
            "gt":"874703612e5cac182812a00e273aad0d",
            "version":4,
            "initParameters": {
              "riskType": "slide"
            }
        },
    "softId": 0
}' https://api.anti-captcha.com/createTask
        
PHP
          <?php

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

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

$api = new GeeTestProxyless();
$api->setVerboseMode(true);
$api->setWebsiteURL("https://www.geetest.com/en/adaptive-captcha-demo");
$api->setGTKey("fcd636b4514bf7ac4143922550b3008b");
$api->setVersion(4);
$api->setInitParameters([
    "riskType": "slide"
]);
//optional API subdomain, make sure you understand what to set here
$api->setAPISubdomain("gcaptcha4.geetest.com");

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

//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 {

    echo "your geetest tokens:\n";
    print_r($api->getTaskSolution());

}
        
Python
          #pip3 install anticaptchaofficial

from anticaptchaofficial.geetestproxyless import *

solver = geetestProxyless()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://address.com")
solver.set_gt_key("captchaId value")
solver.set_version(4)

# optional API subdomain, make sure you understand what to set here
# solver.set_js_api_domain("custom-domain.geetest.com")

# optional initialization parameters
# solver.set_init_parameters({"riskType": "slide"})

# 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)

token = solver.solve_and_return_solution()
if token != 0:
    print "result tokens: "
    print token
else:
    print "task finished with error "+solver.error_code
        
NodeJS
          //npm -i @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.solveGeeTestV4Proxyless('http://DOMAIN.COM',
    'captchaId',
    'API_SUBDOMAIN',
    {
        "riskType": "slide"
    })
    .then(result => {
        console.log('result: ');
        console.log(result);
    })
    .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 GeeTestV4Proxyless()
            {
                ClientKey = ClientKey,
                WebsiteUrl = new Uri("http://www.supremenewyork.com"),
                WebsiteKey = "b6e21f90a91a3c2d4a31fe84e10d0442",

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

            api.initParameters.Add("riskType", "slide");

            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 CaptchaId: " + api.GetTaskSolution().CaptchaId, DebugHelper.Type.Success);
                DebugHelper.Out("Result LotNumber: " + api.GetTaskSolution().LotNumber, DebugHelper.Type.Success);
                DebugHelper.Out("Result PassToken: " + api.GetTaskSolution().PassToken, DebugHelper.Type.Success);
                DebugHelper.Out("Result GenTime: " + api.GetTaskSolution().GenTime, DebugHelper.Type.Success);
                DebugHelper.Out("Result CaptchaOutput: " + api.GetTaskSolution().CaptchaOutput, DebugHelper.Type.Success);
            }

        }
    }
}

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

package com.anti_captcha;

import com.anti_captcha.Api.GeeTestProxyless;
import com.anti_captcha.Helper.DebugHelper;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.Iterator;
import java.util.concurrent.ThreadLocalRandom;

public class Main {

    public static void main(String[] args) throws InterruptedException, MalformedURLException, JSONException {
        DebugHelper.setVerboseMode(true);

        GeeTestProxyless api = new GeeTestV4Proxyless();
        api.setClientKey("YOUR_API_KEY_HERE");
        api.setWebsiteUrl(new URL("http://biletmaster.com/"));
        api.setWebsiteKey("be33de396f8d04030f6eca8fbd225071");

        // optional initial parameters
        JSONObject additionalInitParameters = new JSONObject();
        try {
            additionalInitParameters.put("riskType", "ai");
        } catch (Exception e) {
            DebugHelper.out("JSON error: "+e.getMessage(), DebugHelper.Type.ERROR);
            return;
        }
        api.setInitParameters(additionalInitParameters);

        //optional API subdomain, make sure you understand what to set here
        //api.setGeetestApiServerSubdomain("optional.subdomain.api.geetest.com");

        //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 captcha_id: " + api.getTaskSolution().getCaptchaId(), DebugHelper.Type.SUCCESS);
            DebugHelper.out("Result lot_number: " + api.getTaskSolution().getLotNumber(), DebugHelper.Type.SUCCESS);
            DebugHelper.out("Result pass_token: " + api.getTaskSolution().getPassToken(), DebugHelper.Type.SUCCESS);
            DebugHelper.out("Result gen_time: " + api.getTaskSolution().getGenTime(), DebugHelper.Type.SUCCESS);
            DebugHelper.out("Result captcha_output: " + api.getTaskSolution().getCaptchaOutput(), 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 سیکنڈ میں دوبارہ کوشش کریں۔

ٹاسک کے حل کا آبجیکٹ (V3)

پراپرٹی قسم مقصد
challenge اسٹرنگ ہیش اسٹرنگ جو کہ ٹارگٹ ویب سائٹ پر فارم جمع کروانے کے ساتھ تعامل کے لیے درکار ہوتا ہے۔
validate اسٹرنگ ہیش اسٹرنگ جو بھی چاہیے ہوتا ہے۔
seccode اسٹرنگ ایک اور ہیش اسٹرنگ جو چاہیے ہوتا ہے، ہم نہیں جانتے کہ یہ 3 کیوں ہیں۔

ٹاسک کے حل کا آبجیکٹ (V4)

پراپرٹی قسم
captcha_id اسٹرنگ
lot_number اسٹرنگ
pass_token اسٹرنگ
gen_time انٹیگر
captcha_output اسٹرنگ

جواب کی مثال (v3)

خرابیوں کے بغیر JSON
          {
    "errorId":0,
    "status":"ready",
    "solution":
    {
        "challenge":"3c1c5153aa48011e92883aed820069f3hj",
        "validate":"47ad5a0a6eb98a95b2bcd9e9eecc8272",
        "seccode":"83fa4f2d23005fc91c3a015a1613f803|jordan"
    },
    "cost":"0.001500",
    "ip":"46.98.54.221",
    "createTime":1472205564,
    "endTime":1472205570,
    "solveCount":"0"
}
        

ٹوکن کے استعمال کی مثال

جواب کی مثال (v4)

خرابیوں کے بغیر JSON
          {
    "errorId":0,
    "status":"ready",
    "solution":
    {
        "captcha_id": "fcd636b4514bf7ac4143922550b3008b",
        "lot_number": "354ab6dd4e594fdc903074c4d8d37b24",
        "pass_token": "b645946a654e60218c7922b74b3b5ee8e8717e8fd3cd5182a5c98d660bbd1ed5",
        "gen_time": "1649921519",
        "captcha_output": "cFPIALDXSop8Ri2mPABbRWzNBs86N8D4vNUTuVa7wN7E...[cut]...ciM50ePCCzLBZ1bmaV9Yt7IkkFI9Emx4eaP8rRoA=="
    },
    "cost":"0.001500",
    "ip":"46.98.54.221",
    "createTime":1472205564,
    "endTime":1472205570,
    "solveCount":"0"
}