Aufgabentypen
reCAPTCHA v3
Diese Seite wurde maschinell aus der chinesischen Version übersetzt und kann Fehler enthalten. Maßgeblich ist die chinesische Version.
reCAPTCHA v3 hat weder ein Kontrollkästchen noch Bilder; die Seite bewertet Besucher im Hintergrund. YesCaptcha liefert ein Token (gRecaptchaResponse), das Sie an die Zielwebsite übermitteln. RecaptchaV3TaskProxyless kostet 20 Punkte (≈ $3.00 / 1k) pro Aufgabe und arbeitet asynchron: erst createTask, dann alle 5 Sekunden getTaskResult. Fehlgeschlagene Aufgaben und Zeitüberschreitungen führen automatisch zur Punkteerstattung.
https://api.yescaptcha.com/createTaskGlobaler Endpointhttps://cn.yescaptcha.com/createTaskChina-EndpointDer Request-Body ist JSON, die Authentifizierung erfolgt mit clientKey. Fragen Sie das Ergebnis an demselben Endpoint ab, an dem Sie die Aufgabe erstellt haben.
Anwendungsfälle
Abschnitt betitelt „Anwendungsfälle“- Im Quelltext der Seite steht
grecaptcha.execute(...), oder die Seite lädtrecaptcha/api.js?render=WEBSITE_KEY: reCAPTCHA v3 (Standardversion). - Die Seite ruft
grecaptcha.enterprise.execute(...)auf oder lädtrecaptcha/enterprise.js: reCAPTCHA v3 Enterprise. Verwenden SieRecaptchaV3EnterpriseTaskoderRecaptchaV3EnterpriseTaskM1.
So erkennen Sie den Typ: Captcha-Typ erkennen.
Aufgabentypen und Preise
Abschnitt betitelt „Aufgabentypen und Preise“| Aufgabentyp | Preis | Modus | Hinweise |
|---|---|---|---|
RecaptchaV3TaskProxyless | $3.00 / 1k; 20 Punkte/Aufgabe · ¥20 / 1k | Asynchron | |
RecaptchaV3TaskProxylessM1 | $3.75 / 1k; 25 Punkte/Aufgabe · ¥25 / 1k | Asynchron | |
RecaptchaV3TaskProxylessM1S7 | $4.50 / 1k; 30 Punkte/Aufgabe · ¥30 / 1k | Asynchron | Fordert einen Score von 0.7 an; kein zusätzlicher Parameter erforderlich |
RecaptchaV3TaskProxylessM1S9 | $5.25 / 1k; 35 Punkte/Aufgabe · ¥35 / 1k | Asynchron | Fordert einen Score von 0.9 an; kein zusätzlicher Parameter erforderlich |
RecaptchaV3EnterpriseTask | $3.00 / 1k; 20 Punkte/Aufgabe · ¥20 / 1k | Asynchron | |
RecaptchaV3EnterpriseTaskM1 | $3.75 / 1k; 25 Punkte/Aufgabe · ¥25 / 1k | Asynchron |
Die Preise in US-Dollar sind Schätzwerte bei 1 US$ ≈ ¥6.67; Aufgaben werden in Punkten berechnet.
RecaptchaV3TaskProxylessundRecaptchaV3TaskProxylessM1haben dieselben Parameter, laufen aber über unterschiedliche Routen; Sie können sie gegenseitig als Fallback nutzen.- Verlangt die Zielwebsite einen hohen Score, verwenden Sie
RecaptchaV3TaskProxylessM1S7(0.7) oderRecaptchaV3TaskProxylessM1S9(0.9). Zusätzliche Parameter sind nicht nötig.
Request-Parameter
Abschnitt betitelt „Request-Parameter“| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
type | string | Ja | Aufgabentyp; siehe „Aufgabentypen und Preise“ auf dieser Seite |
websiteURL | string | Ja | Vollständige URL der Seite, auf der das Captcha angezeigt wird. Verwenden Sie die Website, auf der Sie das Captcha sehen, nicht die Domain des Captcha-Anbieters |
websiteKey | string | Ja | Der Website-Schlüssel (sitekey), zu finden im Quelltext der Seite oder in den Netzwerkanfragen; ändert sich in der Regel nicht |
pageAction | string | Nein | Die reCAPTCHA-v3-Action; sie muss mit dem Wert übereinstimmen, den die Seite an grecaptcha.execute übergibt, sonst wird das Token möglicherweise abgelehnt |
pageAction muss mit der action übereinstimmen, die die Seite in grecaptcha.execute(WEBSITE_KEY, {action: '...'}) übergibt. Bei falschem Wert kann die Website das Token ablehnen. So finden Sie den Wert: reCAPTCHA-Parameter finden.
Request-Beispiel
Abschnitt betitelt „Request-Beispiel“{ "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);Ersetzen Sie websiteURL, websiteKey und pageAction durch die Werte der Zielwebsite.
Ergebnis
Abschnitt betitelt „Ergebnis“{ "errorId": 0, "status": "ready", "solution": { "gRecaptchaResponse": "03AGdBq25SxXT-pmSeBXjzScW-EiocHwwpwqtk1QXlJnGnU..." }}| Feld | Typ | Beschreibung |
|---|---|---|
gRecaptchaResponse | string | Das Token, das an die Zielwebsite gesendet wird. Einmalig verwendbar, ca. 120 Sekunden gültig; verwenden Sie es innerhalb von 60 Sekunden |
Solange die Aufgabe läuft, erhalten Sie {"errorId": 0, "status": "processing"}; fragen Sie nach 5 Sekunden erneut ab. Bei Fehlern gehen Sie anhand von errorCode vor, siehe Fehlercodes. Wie Sie das Token übermitteln, steht in reCAPTCHA mit einem Token abschließen.
Warum lehnt die Website manche Tokens ab?
Abschnitt betitelt „Warum lehnt die Website manche Tokens ab?“Bei v3 entscheidet die Zielwebsite anhand des Scores, und sie kann ihren Schwellenwert jederzeit ändern. Nicht jedes Token wird daher akzeptiert. Prüfen Sie, ob pageAction korrekt ist; verlangt die Website einen hohen Score, versuchen Sie M1S7 oder M1S9; Sie können auch andere Typen derselben Familie vergleichen.
Wie fülle ich v3 Enterprise aus?
Abschnitt betitelt „Wie fülle ich v3 Enterprise aus?“Wie bei der Standardversion: websiteURL, websiteKey, pageAction, mit dem Typ RecaptchaV3EnterpriseTask oder RecaptchaV3EnterpriseTaskM1.
Wie lange ist ein Token gültig?
Abschnitt betitelt „Wie lange ist ein Token gültig?“Es ist nur einmal verwendbar und etwa 120 Sekunden gültig. Übermitteln Sie es innerhalb von 60 Sekunden.
Weiterführende Anleitungen
Abschnitt betitelt „Weiterführende Anleitungen“- Captcha-Typ erkennen
- reCAPTCHA-Parameter finden (einschließlich
pageAction) - reCAPTCHA mit einem Token abschließen