Eine 2Captcha-reCAPTCHA-Integration auf solvethree umstellen
Dies ist nicht nur ein Wechsel des Endpunkts. Ersetzen Sie die clientKey/task-Hülle durch eine flache Anfrage, die mit einem Bearer-Schlüssel authentifiziert wird, konfigurieren Sie die Zielwebsite in solvethree und geben Sie einen Proxy an. Halten Sie bestehende 2Captcha-Aufgaben-IDs von neuen solvethree-Aufgaben getrennt.
Auf dieser Seite
Die zu migrierende Aufgabe prüfen
Diese Migration behandelt reCAPTCHA v3 Enterprise über 2Captcha API v2. Sie beschreibt nicht die ältere in.php/res.php-API. Außerdem ist die API-Version von 2Captcha nicht die CAPTCHA-Version: solvethree unterstützt reCAPTCHA v2 nicht.
Die ursprüngliche Anfrage verwendet die unter 2Captcha createTask dokumentierte Hülle: Zugangsdaten außerhalb eines anbieterspezifischen Aufgabenobjekts.
{
"clientKey": "TWO_CAPTCHA_API_KEY",
"task": {
"type": "RecaptchaV3TaskProxyless",
"websiteURL": "https://accounts.example.com/login",
"websiteKey": "PUBLIC_SITE_KEY",
"minScore": 0.7,
"pageAction": "login",
"isEnterprise": true
}
}Übernehmen Sie dieses Objekt nicht unverändert in die neue API. Insbesondere gehören der proxylose Aufgabentyp und minScore nicht in die folgende solvethree-Anfrage.
Website konfigurieren, dann die Anfrage ersetzen
Richten Sie zuerst die Zielwebsite in der solvethree-Konsole ein. Ihr Workspace benötigt ein aktives Website-Profil, bevor er Anfragen für diesen Hostnamen lösen kann. Das Senden eines Hostnamens und einer Aktion erstellt kein Profil.
Erstellen Sie neue Tasks mit POST /v1/tasks unter https://api.solvethree.com und verwenden Sie Authorization: Bearer mit Ihrem Workspace-API-Schlüssel. Bewahren Sie diesen Schlüssel auf dem Server auf. Die Spezifikation zur Task-Erstellung verwendet einen flachen JSON-Body statt eines verschachtelten task-Objekts.
| Eingabe für die 2Captcha API v2 | Entsprechung in solvethree |
|---|---|
| clientKey | Workspace-API-Schlüssel im Authorization-Header, nicht im JSON-Body. |
| task-Wrapper | Entfernen Sie ihn; senden Sie die Task-Felder auf der obersten Ebene. |
| type: RecaptchaV3TaskProxyless | Lassen Sie type weg. Geben Sie genau eines der Felder proxy oder proxyCandidates an. |
| websiteURL | Verwenden Sie site nur mit dem Hostnamen: accounts.example.com. Senden Sie kein url. |
| websiteKey | Konfigurieren Sie das Profil der Zielwebsite in der Konsole, statt dieses Feld in den Task zu kopieren. |
| pageAction | Verwenden Sie action mit dem Aktionswert der Zielwebsite, etwa login. |
| isEnterprise | Lassen Sie es weg; recaptchaType hat standardmäßig den Wert enterprise-v3. |
| minScore | Lassen Sie es weg; kopieren Sie es nicht in die solvethree-Anfrage. |
{
"site": "accounts.example.com",
"action": "login",
"proxy": "http://user:[email protected]:8080",
"requestId": "example_login_001"
}Ersetzen Sie den Beispielhostnamen, die Aktion und den Proxy durch die Werte Ihrer Zielwebsite. Wählen Sie requestId vor dem Senden der Anfrage und bewahren Sie den Wert zur Wiederherstellung nach einem Timeout auf; verwenden Sie für jeden neuen logischen Task einen neuen Wert.
Das Beispiel verwendet einen Proxy. Alternativ akzeptiert proxyCandidates höchstens zwölf unterschiedliche HTTP- oder HTTPS-Proxy-URLs ohne Pfade, Abfrageparameter oder Fragmente. Senden Sie eines der beiden Felder, niemals beide. Mit Kandidaten kann der Dienst alternative Ausgangsverbindungen ausprobieren; sie garantieren keinen funktionierenden Proxy.
Polling und Timeout-Behandlung ersetzen
Behalten Sie für laufende 2Captcha-Tasks dessen getTaskResult-Ablauf bei und verwenden Sie die zugehörigen Zugangsdaten, Task-IDs und dokumentierten Polling-Regeln. Eine fremde Task-ID ist keine solvethree-Task-Referenz.
- 1.
Antwort auf die Erstellung verarbeiten
Prüfen Sie auf eine nicht erfolgreiche HTTP-Antwort, bevor Sie eine Erfolgs-Payload auslesen. Die reCAPTCHA-Erstellung wartet standardmäßig bis zu 15 Sekunden, kann aber einen noch nicht abgeschlossenen Task zurückgeben. Ist er bereits ready, verwenden Sie die Lösung, ohne eine Polling-Schleife zu starten.
- 2.
Nur nicht abgeschlossene Tasks abfragen
Rufen Sie den solvethree-Task mit GET /v1/tasks/:id ab. Ersetzen Sie die bisherige Prüfung auf processing durch pending und solving; beide bedeuten, dass der Task noch nicht abgeschlossen ist. Nur ready enthält eine verwendbare Lösung.
- 3.
Wartezeit in der URL festlegen
GET-Polling wartet standardmäßig nicht. Setzen Sie für Long Polling den URL-Abfrageparameter waitMs auf höchstens 15000, nicht ein JSON-Feld. Berücksichtigen Sie beim Timeout Ihres HTTP-Clients die angeforderte Wartezeit plus Netzwerk-Overhead.
- 4.
Bei failed stoppen
Lesen Sie errorCode und error aus und beenden Sie dann das Polling für diesen Task. Fehlgeschlagene Lösungsvorgänge werden erstattet. Ein Fehler wie site-unreachable muss untersucht werden; gehen Sie nicht davon aus, dass jeder Fehler ein Guthabenproblem ist, und senden Sie unverändert ungültige Eingaben nicht immer wieder.
Ein Verbindungs-Timeout beweist nicht, dass die Erstellung fehlgeschlagen ist. Wenn Sie die Task-ID erhalten haben, rufen Sie diesen Task ab. Andernfalls wiederholen Sie dieselbe Anfrage mit derselben requestId, um den bestehenden Task wiederzufinden, statt einen weiteren Lösungsvorgang zu erstellen. Wenn Sie die Task-Eingaben ändern und dabei dieselbe requestId wiederverwenden, entsteht ein Konflikt.
Behandeln Sie HTTP-Fehler in Ihrem Adapter getrennt von endgültigen Task-Fehlern. Die Polling-Spezifikation und die Fehlerbehandlung beschreiben diese beiden Fälle; verwenden Sie den Parser für 2Captcha-Fehler-Payloads nicht weiter.
Token-Extraktion und Übermittlung aktualisieren
Ersetzen Sie die Token-Abfrage des alten Adapters durch solution.token aus einem solvethree-Task mit dem Status ready. Übermitteln Sie dieses Token dort, wo die Zielwebsite ihren reCAPTCHA-Wert erwartet – nicht die Task-ID oder das gesamte solution-Objekt.
Verwenden Sie beim Übermitteln des Tokens die zurückgegebene Browseridentität aus userAgent und secChUa zusammen mit dem erfolgreichen Proxy. Wenn Sie proxyCandidates angegeben haben, verwenden Sie den erfolgreichen Proxy, statt für die Übermittlung einen anderen Kandidaten auszuwählen.
Ein Task mit dem Status ready bedeutet, dass eine Lösung generiert wurde, nicht dass die Website Ihre Anwendungsanfrage akzeptiert hat. Wenn die Zielwebsite sie ablehnt, prüfen Sie das gesendete Token, die Aktion, die Ziel-URL, den Proxy und die Browseridentität, bevor Sie für einen weiteren Lösungsvorgang bezahlen.
Quellen und API-Referenz
Führe deinen ersten Task aus.
Starte mit $5 Workspace-Guthaben.