Die CAPTCHA-Aufgaben-API in Make verwenden
Erstellen Sie die Aufgabe einmal mit dem HTTP-Modul von Make, speichern Sie ihre ID und prüfen Sie sie mit einer separaten GET-Anfrage. Leiten Sie Aufgaben mit ready, failed und noch nicht abgeschlossene Aufgaben getrennt weiter. Dies ist eine manuelle HTTP-Integration, keine native solvethree-App und kein Webhook.
Auf dieser Seite
Erstellungsanfrage konfigurieren
Richten Sie zunächst in Ihrem Workspace ein aktives Profil für den Zielhostnamen ein. Das Senden von site und action erstellt kein Profil. Siehe Websiteprofil einrichten, wenn das Ziel noch nicht konfiguriert ist.
- 1.
HTTP-v4-Authentifizierung konfigurieren
Wählen Sie als Authentifizierungstyp
API keyund erstellen Sie einen Schlüsselbund für Zugangsdaten. Setzen Sie den Schlüssel aufBearer, gefolgt von einem Leerzeichen und Ihrem Workspace-API-Schlüssel, die Platzierung aufIn the headerund den Parameternamen aufAuthorization. Beschränken Sie die zulässigen Dienstursprünge aufhttps://api.solvethree.com. Bewahren Sie den Schlüssel im Schlüsselbund auf, statt ihn über Szenariodaten weiterzugeben. - 2.
Anfrageeinstellungen eingeben
Verwenden Sie die unten gezeigte Methode, URL, Abfrageparameter, Header und den JSON-Body. Tragen Sie jede Angabe in das entsprechende Modulfeld ein. Nur der Inhalt von
bodygehört in den JSON-Anfrageinhalt; das vollständige Beispiel dient zur Erläuterung der Konfiguration und ist kein importierbarer Make-Blueprint.
{
"method": "POST",
"url": "https://api.solvethree.com/v1/tasks",
"query": {
"waitMs": "0"
},
"headers": {
"Content-Type": "application/json"
},
"body": {
"site": "accounts.example.com",
"action": "login",
"proxy": "http://USER:PASSWORD@PROXY:PORT",
"requestId": "one-stable-id-for-this-logical-job"
},
"authentication": {
"type": "API key",
"Key": "Bearer YOUR_PRIVATE_WORKSPACE_KEY",
"API key placement": "In the header",
"API key parameter name": "Authorization",
"Allowed service origins": [
"https://api.solvethree.com"
]
}
}- Ersetzen Sie
sitedurch den konfigurierten Hostnamen, nicht durch eine vollständige URL. Setzen Sieactionauf die Aktion, die der Zielablauf verwendet. - Ersetzen Sie
proxydurch Ihre Proxy-URL. Die Anfrage erfordert genau eines der FelderproxyoderproxyCandidates; das Beispiel verwendet einen einzelnen Proxy. - Geben Sie jedem neuen logischen Auftrag eine eigene
requestIdund bewahren Sie diese zur Wiederherstellung auf. Der Beispielwert ist ein Platzhalter, keine ID, die Sie für voneinander unabhängige Aufträge wiederverwenden sollten. - Fügen Sie dieser reCAPTCHA-Anfrage weder
typenochurlhinzu. WennrecaptchaTypeweggelassen wird, gilt der Standardwertenterprise-v3.
Aufgaben-ID speichern und GET konfigurieren
Speichern Sie nach einer erfolgreichen Erstellungsantwort die zurückgegebene Aufgaben-ID beim logischen Auftrag, bevor Sie weitere Schritte ausführen. Fügen Sie ein separates HTTP-Anfragemodul hinzu, um diese Aufgabe abzurufen.
| Einstellung | Wert |
|---|---|
| Methode | GET |
| URL | https://api.solvethree.com/v1/tasks/:id, wobei Sie :id durch die gespeicherte Aufgaben-ID ersetzen |
| Authentifizierung | API-Schlüssel; verwenden Sie den Schlüsselbund für Zugangsdaten der Erstellungsanfrage erneut |
| Anfrage-Body | Keiner |
Behandeln Sie nicht erfolgreiche HTTP-Antworten, bevor Sie anhand des Aufgabenstatus weiterleiten. Ein HTTP-Fehler ist nicht dasselbe wie eine Aufgabe mit dem Status failed; behandeln Sie eine nicht lesbare oder nicht erfolgreiche Antwort nicht als weiteres pending-Ergebnis.
Anhand des zurückgegebenen Aufgabenstatus weiterleiten
Fügen Sie nach einem erfolgreichen GET einen Router mit expliziten Filtern für den zurückgegebenen status hinzu. Leiten Sie nicht jede erfolgreiche HTTP-Antwort auf die Lösungsroute weiter.
| Filter | Aktion |
|---|---|
status ist gleich ready | Übergeben Sie die Lösung an den übermittelnden Client und schließen Sie den Polling-Pfad dieser Aufgabe. |
status ist gleich failed | Protokollieren Sie errorCode und error und beenden Sie anschließend das Polling dieser Aufgabe. Fehlgeschlagene Lösungsversuche werden erstattet. |
status ist gleich pending ODER status ist gleich solving | Behalten Sie die gespeicherte Aufgaben-ID und beenden Sie diesen Polling-Durchlauf. Setzen Sie den Abruf in einem späteren Durchlauf mit GET fort. |
Definieren Sie den Filter für nicht abgeschlossene Aufgaben explizit, statt ihn als Auffangroute zu verwenden. Ein fehlender oder unerwarteter Status sollte geprüft werden, statt stillschweigend endloses Polling auszulösen. Untersuchen Sie auf der Fehlerroute den gemeldeten Fehler, bevor Sie eine weitere Aufgabe erstellen; unveränderte ungültige Eingaben werden durch Wiederholungen nicht besser.
Mit der gespeicherten ID fortfahren, statt POST zu wiederholen
Ein einfacher, begrenzter Ablauf führt pro Polling-Durchlauf eine GET-Anfrage aus. Speichern Sie nicht abgeschlossene Arbeit an einem Ort, auf den der nächste Durchlauf zugreifen kann; verlassen Sie sich nicht auf eine Aufgaben-ID, die nur in der aktuellen Ausführung existiert.
- 1.
Einstiegspfad wählen
Wenn der Auftrag bereits eine Aufgaben-ID hat, gehen Sie direkt zu GET. Nur ein neuer Auftrag ohne vorhandene Aufgabe sollte den Erstellungspfad durchlaufen.
- 2.
Durchläufe mit nicht abgeschlossenen Aufgaben beenden
Behalten Sie bei
pendingodersolvingdie Aufgaben-ID und beenden Sie den Durchlauf. Rufen Sie beim Fortsetzen dieselbe ID ab. Markieren Sie Aufgaben mit Endstatus als geschlossen, damit spätere Polling-Durchläufe ihre Ergebnisse nicht erneut verarbeiten. - 3.
Wiederholungen begrenzen
Wenn Sie stattdessen einen Repeater hinzufügen, legen Sie eine endliche Höchstzahl fest und wiederholen Sie nur GET für die gespeicherte ID. Verhindern Sie nach
readyoderfailedweiteres Polling oder weitere Ergebnisverarbeitung. Wenn das Wiederholungslimit erreicht ist, müssen Sie stoppen und die ID behalten, statt eine Ersatzaufgabe zu erstellen.
Das fertige Ergebnis an einen proxyfähigen Client übergeben
Bei dieser reCAPTCHA-Anfrage ist solution.token der zu übermittelnde Wert, nicht die Aufgaben-ID. Verwenden Sie beim Übermitteln an das vorgesehene Ziel die zurückgegebene Browseridentität aus userAgent und secChUa zusammen mit dem erfolgreichen Proxy.
Gehen Sie nicht davon aus, dass das HTTP-Modul von Make für diese abschließende Anfrage den Kundenproxy des Solvers verwenden kann. Übergeben Sie das fertige Ergebnis an einen Client, der den erforderlichen Proxy und die Browseridentität unterstützt. ready bedeutet, dass die Lösung generiert wurde; ob sie akzeptiert wird, bestimmt die Antwort des Ziels auf die anschließende Übermittlung.
Quellen und API-Referenz
Führe deinen ersten Task aus.
Starte mit $5 Workspace-Guthaben.