Panduan
Tugas (Token)
Cloudflare Turnstile

Cloudflare: menyelesaikan Turnstile

TIPS

Buat tugas dengan metode createTask dan dapatkan hasilnya dengan metode getTaskResult.

BAHAYA

ℹ️ Tipe turnstile tidak memerlukan proxy, jadi Anda cukup menggunakan AntiTurnstileTaskProxyLess

Captcha Turnstile adalah upaya lain untuk menggantikan reCaptcha. Kami secara otomatis mendukung subtipe ini:

  • turnstile
    • Secara Manual
    • Non-Interaktif
    • Tidak Terlihat

Tidak perlu menentukan subtipe selama panggilan Anda. Belum perlu untuk menyediakan User-Agent kustom Anda sendiri, kami akan mengabaikan parameter ini.

Tipe tugas type adalah sebagai berikut

  • AntiTurnstileTaskProxyLess

Buat Tugas

Buat tugas dengan metode createTask.

Dalam proses penggunaan turnstile, kita harus memasukkan websiteURL dan websiteKey, parameter lain bersifat opsional.

Struktur Objek Tugas

PropertiTipeWajibDeskripsi
typeStringWajibAntiTurnstileTaskProxyLess
websiteURLStringWajibAlamat halaman target.
websiteKeyStringWajibKunci situs web Turnstile.
metadataMap<String,String>OpsionalData tambahan Turnstile. Dokumentasi Turnstile
metadata.actionStringOpsionalNilai atribut data-action dari elemen Turnstile jika ada.
metadata.cdataStringOpsionalNilai atribut data-cdata dari elemen Turnstile jika ada.

Contoh Permintaan

POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "AntiTurnstileTaskProxyLess",
    "websiteURL": "https://www.yourwebsite.com",
    "websiteKey": "0x4XXXXXXXXXXXXXXXXX",
    "metadata": {
       "action": "login",  //opsional
       "cdata": "0000-1111-2222-3333-example-cdata"  //opsional
    }
  }
}

Contoh Respon

{
  "errorId": 0,
  "status": "idle",
  "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"   // catat taskId
}
 

Mendapatkan Hasil

Gunakan metode getTaskResult untuk mendapatkan hasil pengenalan

Tergantung pada beban sistem, Anda akan mendapatkan hasilnya dalam interval 1s hingga 20s

Contoh Permintaan

POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
{
  "clientKey": "YOUR_API_KEY",
  "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

Contoh Respon

{
  "errorId": 0,
  "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006",
  "status": "ready",
  "errorCode": null,
  "errorDescription": null,
  "solution": {
    "token": "0.mF74FV8wEufAWOdvOak_xFaVy3lqIDel7SwNhw3GgpICSWwTjYfrQB8mRT1dAJJBEoP7N1sESdp6WH9cTS1T0catWLecG3ayNcjwxVtr3hWfS-dmcBGRTx4xYwI64sAVboYGpIyuDBeMIRC3W8dK35v1nDism9xa595Da5VlXKM7hk7pIXg69lodfiftasIkyD_KUGkxBwxvrmz7dBo10-Y5zvro9hD4QKRjOx7DYj9sumnkyYCDx0m4ImDIIkNswfVTWI2V22wlnpHdvMgdtKYgOIIAU28y9gtdrdDkpkH0GHcDyd15sxQGd9VjwhGZA_mpusUKMsEoGgst2rJ3zA.UWfZupqLlGvlATkPo3wdaw.38d55cd0163610d8ce8c42fcff7b62d8981495cc1afacbb2f14e5a23682a4e13",
    "type": "turnstile",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
  }
}

Gunakan Permintaan SDK

# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
 
import capsolver
 
# capsolver.api_key = "..."
solution = capsolver.solve({
  "type": "AntiTurnstileTaskProxyLess",
  "websiteURL": "https://www.yourwebsite.com",
  "websiteKey": "0x4XXXXXXXXXXXXXXXXX",
  "metadata": {
	 "action": "login"  # opsional
  }
})

Contoh Kode

# pip install requests
import requests
import time
 
api_key = "YOUR_API_KEY"  # kunci API capsolver Anda
site_key = "0x4XXXXXXXXXXXXXXXXX"  # kunci situs target Anda
site_url = "https://www.yourwebsite.com"  # URL halaman situs target Anda
 
def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'AntiTurnstileTaskProxyLess',
            "websiteKey": site_key,
            "websiteURL": site_url,
            "metadata": {
                "action": ""  # opsional
            }
        }
    }
    res = requests.post("https://api.capsolver.com/createTask", json=payload)
    resp = res.json()
    task_id = resp.get("taskId")
    if not task_id:
        print("Failed to create task:", res.text)
        return
    print(f"Got taskId: {task_id} / Getting result...")
 
    while True:
        time.sleep(1)  # tunda
        payload = {"clientKey": api_key, "taskId": task_id}
        res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
        resp = res.json()
        status = resp.get("status")
        if status == "ready":
            return resp.get("solution", {}).get('token')
        if status == "failed" or resp.get("errorId"):
            print("Solve failed! response:", res.text)
            return
 
token = capsolver()
print(token)