Görev türleri
reCAPTCHA v3
Bu sayfa Çince sürümden makine çevirisiyle hazırlanmıştır ve hatalar içerebilir. Geçerli olan Çince sürüm sürümüdür.
reCAPTCHA v3’te onay kutusu da görsel de yoktur; sayfa ziyaretçilere arka planda skor verir. YesCaptcha bir token (gRecaptchaResponse) döndürür, bu token’ı hedef siteye göndermeniz yeterlidir. RecaptchaV3TaskProxyless için görev başına ücret: 20 puan (≈ $3.00 / 1k). Görev asenkron çalışır: önce createTask, ardından her 5 saniyede bir getTaskResult çağrılır. Başarısız olan ve zaman aşımına uğrayan görevlerde puan iadesi otomatik yapılır.
https://api.yescaptcha.com/createTaskGlobal uç noktahttps://cn.yescaptcha.com/createTaskÇin uç noktasıİstek gövdesi JSON’dur ve clientKey ile doğrulanır. Görevi hangi uç noktada oluşturduysanız sonucu da aynı uç noktadan sorgulayın.
Kullanım durumları
Bölüm başlığı “Kullanım durumları”- Sayfa kaynağında
grecaptcha.execute(...)varsa ya darecaptcha/api.js?render=SITE_KEYyükleniyorsa: standart v3. grecaptcha.enterprise.execute(...)çağrılıyorsa ya darecaptcha/enterprise.jsyükleniyorsa: v3 Enterprise.RecaptchaV3EnterpriseTaskveyaRecaptchaV3EnterpriseTaskM1kullanın.
Nasıl ayırt edileceği için bkz. CAPTCHA türünü belirleme.
Türler ve fiyatlar
Bölüm başlığı “Türler ve fiyatlar”| Görev türü | Fiyat | Mod | Notlar |
|---|---|---|---|
RecaptchaV3TaskProxyless | $3.00 / 1k; 20 puan/görev · ¥20 / 1k | Asenkron | |
RecaptchaV3TaskProxylessM1 | $3.75 / 1k; 25 puan/görev · ¥25 / 1k | Asenkron | |
RecaptchaV3TaskProxylessM1S7 | $4.50 / 1k; 30 puan/görev · ¥30 / 1k | Asenkron | 0.7 skor ister; ek parametre gerekmez |
RecaptchaV3TaskProxylessM1S9 | $5.25 / 1k; 35 puan/görev · ¥35 / 1k | Asenkron | 0.9 skor ister; ek parametre gerekmez |
RecaptchaV3EnterpriseTask | $3.00 / 1k; 20 puan/görev · ¥20 / 1k | Asenkron | |
RecaptchaV3EnterpriseTaskM1 | $3.75 / 1k; 25 puan/görev · ¥25 / 1k | Asenkron |
ABD doları fiyatları, 1 ABD doları ≈ ¥6.67 kuruyla hesaplanan tahminlerdir; görevler puan üzerinden ücretlendirilir.
RecaptchaV3TaskProxylessveRecaptchaV3TaskProxylessM1aynı parametreleri alır, farklı hatlar kullanır; birbirinin yedeği olarak kullanılabilir.- Hedef site yüksek skor istiyorsa sabit skorlu
RecaptchaV3TaskProxylessM1S7(0.7 skor) veyaRecaptchaV3TaskProxylessM1S9(0.9 skor) türünü kullanın; ek parametre gerekmez.
İstek parametreleri
Bölüm başlığı “İstek parametreleri”| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
type | string | Evet | Görev türü; bu sayfadaki "Görev türleri ve fiyatlar" bölümüne bakın |
websiteURL | string | Evet | CAPTCHA'nın göründüğü sayfanın tam URL'si. CAPTCHA'yı gördüğünüz siteyi yazın, CAPTCHA sağlayıcısının alan adını değil |
websiteKey | string | Evet | Site anahtarı (sitekey); sayfa kaynağında veya ağ isteklerinde bulunur, genellikle değişmez |
pageAction | string | Hayır | reCAPTCHA v3 action değeri; sayfanın grecaptcha.execute çağrısına verdiği değerle aynı olmalıdır, aksi halde token geçersiz sayılabilir |
pageAction, sayfanın grecaptcha.execute(SITE_KEY, {action: '...'}) çağrısında ilettiği action ile aynı olmalıdır; yanlış doldurulursa site token’ı reddedebilir. Nasıl bulunacağı için bkz. reCAPTCHA parametrelerini bulma.
İstek örneği
Bölüm başlığı “İstek örneği”{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "RecaptchaV3TaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "SITE_KEY_OF_THE_PAGE", "pageAction": "login" }}curl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d '{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "RecaptchaV3TaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "SITE_KEY_OF_THE_PAGE", "pageAction": "login" }}'
# Returns {"errorId":0,"taskId":"..."}; then poll every 5 seconds:curl -s https://api.yescaptcha.com/getTaskResult \ -H 'Content-Type: application/json' \ -d '{"clientKey": "YOUR_CLIENT_KEY", "taskId": "TASK_ID"}'import osimport time
import requests
API = "https://api.yescaptcha.com"CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"] # Read the clientKey from an environment variable
def call(method, payload): r = requests.post(f"{API}/{method}", json={"clientKey": CLIENT_KEY, **payload}, timeout=30) data = r.json() if data.get("errorId"): raise RuntimeError(f"{data.get('errorCode')}: {data.get('errorDescription')}") return data
def solve(task): task_id = call("createTask", {"task": task})["taskId"] for _ in range(36): # Poll every 5 seconds, for up to about 3 minutes time.sleep(5) result = call("getTaskResult", {"taskId": task_id}) if result.get("status") == "ready": return result["solution"] raise TimeoutError(task_id)
solution = solve({ "type": "RecaptchaV3TaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "SITE_KEY_OF_THE_PAGE", "pageAction": "login",})print(solution["gRecaptchaResponse"])const API = 'https://api.yescaptcha.com';const CLIENT_KEY = process.env.YESCAPTCHA_CLIENT_KEY; // Read the clientKey from an environment variable
async function call(method, payload) { const res = await fetch(`${API}/${method}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ clientKey: CLIENT_KEY, ...payload }), }); const data = await res.json(); if (data.errorId) throw new Error(`${data.errorCode}: ${data.errorDescription}`); return data;}
async function solve(task) { const { taskId } = await call('createTask', { task }); for (let i = 0; i < 36; i++) { // Poll every 5 seconds, for up to about 3 minutes await new Promise((r) => setTimeout(r, 5000)); const result = await call('getTaskResult', { taskId }); if (result.status === 'ready') return result.solution; } throw new Error(`timeout: ${taskId}`);}
const solution = await solve({ type: "RecaptchaV3TaskProxyless", websiteURL: "https://example.com/login", websiteKey: "SITE_KEY_OF_THE_PAGE", pageAction: "login",});console.log(solution.gRecaptchaResponse);websiteURL, websiteKey ve pageAction alanlarını hedef sitenin değerleriyle değiştirin.
Dönen sonuç
Bölüm başlığı “Dönen sonuç”{ "errorId": 0, "status": "ready", "solution": { "gRecaptchaResponse": "03AGdBq25SxXT-pmSeBXjzScW-EiocHwwpwqtk1QXlJnGnU..." }}| Alan | Tür | Açıklama |
|---|---|---|
gRecaptchaResponse | string | Hedef siteye gönderilecek token. Tek kullanımlıktır, yaklaşık 120 saniye geçerlidir; 60 saniye içinde kullanmanız önerilir |
İşlem sürerken {"errorId": 0, "status": "processing"} döner; 5 saniye sonra tekrar sorgulayın. Hatalarda errorCode değerine göre hareket edin, bkz. Hata kodları. Token’ı aldıktan sonra nasıl göndereceğiniz için bkz. reCAPTCHA’yı token ile tamamlama.
Sık sorulan sorular
Bölüm başlığı “Sık sorulan sorular”Token’lar neden bazen site tarafından kabul edilmiyor?
Bölüm başlığı “Token’lar neden bazen site tarafından kabul edilmiyor?”v3’te karar, skora göre hedef sitede verilir ve site eşiği istediği zaman değiştirebilir; bu yüzden her token geçmeyebilir. pageAction değerinin doğru olduğundan emin olun; site yüksek skor istiyorsa M1S7 veya M1S9 türünü deneyin; aynı gruptaki diğer türleri de karşılaştırabilirsiniz.
v3 Enterprise nasıl doldurulur?
Bölüm başlığı “v3 Enterprise nasıl doldurulur?”Standart sürümle aynı şekilde websiteURL, websiteKey ve pageAction alanlarını doldurun; türü RecaptchaV3EnterpriseTask veya RecaptchaV3EnterpriseTaskM1 yapın.
Token ne kadar süre geçerli?
Bölüm başlığı “Token ne kadar süre geçerli?”Tek kullanımlıktır ve yaklaşık 120 saniye geçerlidir. 60 saniye içinde göndermeniz önerilir.