Integrationen

Power Automate + CaptchaAI: Microsoft Flow CAPTCHA-Lösung

Microsoft Power Automate (ehemals Flow) automatisiert Geschäftsprozesse im gesamten Microsoft-Ökosystem und Hunderten von Drittanbieterdiensten. Wenn diese Arbeitsabläufe auf CAPTCHA-geschützte Webformulare oder APIs stoßen,CaptchaAIkönnen sie über den HTTP-Connector von Power Automate lösen.

In dieser Anleitung wird gezeigt, wie Sie einen Power Automate-Flow erstellen, der CAPTCHAs an CaptchaAI sendet, Ergebnisse abfragt und das gelöste Token verwendet, um Formularübermittlungen abzuschließen.

Szenario aus der realen Welt

Ihr Finanzteam muss den Datenabruf von einem Anbieterportal automatisieren, das reCAPTCHA v2 anzeigt. Anstelle manueller Eingriffe ein Power Automate-Flow:

  1. Erhält die CAPTCHA-Parameter (Sitekey, Seiten-URL)
  2. Sendet sie an CaptchaAI
  3. Wartet auf die Lösung
  4. Verwendet das Token zur Authentifizierung und zum Abrufen der Daten

Schritt 1: Erstellen Sie den Flow

Erstellen Sie in Power Automate einen Sofort-Cloud-Flow mit einem Manuellen Auslöser (oder einem beliebigen Auslöser Ihrer Wahl).

Fügen Sie dem Trigger Eingabeparameter hinzu

Fügen Sie dem manuellen Auslöser zwei Texteingaben hinzu:

  • sitekey – Der reCAPTCHA v2-Sitekey
  • pageurl – Die URL der Seite mit dem CAPTCHA

Schritt 2: CAPTCHA-Aufgabe senden

Fügen Sie eine HTTP-Aktion hinzu (Premium-Connector):

Einstellung Wert
Methode ERHALTEN
URI https://ocr.captchaai.com/in.php

Anfragen:

Schlüssel Wert
Schlüssel Ihr CaptchaAI-API-Schlüssel
Methode userrecaptcha
Googlekey @{triggerBody()['text']} (Sitekey-Eingabe)
Seitenurl @{triggerBody()['text_1']} (Seiten-URL-Eingabe)
json 1

Antwort analysieren: Fügen Sie nach der HTTP-Aktion eine Aktion JSON analysieren hinzu:

Schema:

{
  "type": "object",
  "properties": {
    "status": { "type": "integer" },
    "request": { "type": "string" }
  }
}

Inhalt: @{body('HTTP')}

Schritt 3: Validieren Sie die Antwort

Fügen Sie eine Bedingung-Aktion hinzu:

  • Bedingung: @{body('Parse_JSON')?['status']} ist gleich 1

Wenn Nein (Senden fehlgeschlagen):

  • Fügen Sie eine Aktion Beenden mit dem Status „Fehlgeschlagen“ und der Meldung „Submit error: @{body('Parse_JSON')?['request']}“ hinzu

Wenn ja:

  • Weiter zur Wahlschleife

Schritt 4: Erstellen Sie die Polling-Schleife

Fügen Sie innerhalb des „If Yes“-Zweigs eine Do Until-Schleife hinzu:

Schleifenbedingung: @{variables('solveStatus')} ist nicht gleich pending

Initialisieren Sie vor der Schleife zwei Variablen:

  • solveStatus (String) = pending
  • solvedToken (String) = leer

Fügen Sie innerhalb der Do Until-Schleife diese Aktionen nacheinander hinzu:

4a. Verzögerung

Fügen Sie eine Aktion Verzögerung hinzu: 5 Sekunden.

4b. HTTP – Umfrage zum Ergebnis

Einstellung Wert
Methode ERHALTEN
URI https://ocr.captchaai.com/res.php

Anfragen:

Schlüssel Wert
Schlüssel Ihr CaptchaAI-API-Schlüssel
Aktion get
ID @{body('Parse_JSON')?['request']}
json 1

4c. JSON analysieren – Umfrageantwort

Verwenden Sie dasselbe Schema wie in Schritt 2.

4d. Bedingung – Status prüfen

Bedingung: @{body('Parse_JSON_2')?['status']} ist gleich 1

Wenn Ja (gelöst):

  • Setzen Sie die Variable solvedToken = @{body('Parse_JSON_2')?['request']}
  • Setzen Sie die Variable solveStatus = solved

Wenn Nein:

  • Fügen Sie eine weitere Bedingung hinzu: @{body('Parse_JSON_2')?['request']} ist nicht gleich CAPCHA_NOT_READY
  • Wenn wahr (Fehler), setzen Sie solveStatus = error
  • Wenn „false“ (immer noch ausstehend), nichts tun (Schleife wird fortgesetzt)

Legen Sie das Schleifenlimit Do Until fest:

  • Anzahl: 20 (maximale Iterationen)
  • Timeout: PT3M (3 Minuten)

Schritt 5: Verwenden Sie das gelöste Token

Fügen Sie nach der Schleife eine Bedingung hinzu, um @{variables('solveStatus')} zu überprüfen:

Wenn gleich „gelöst“:

  • Verwenden Sie @{variables('solvedToken')} in einem HTTP-POST, um das Formular abzusenden
  • Oder senden Sie es per E-Mail, Teams-Nachricht oder einem anderen Connector

Beispiel für einen HTTP-POST zum Absenden eines Formulars:

Einstellung Wert
Methode POST
URI URL des Zielformulars
Körper {"g-recaptcha-response": "@{variables('solvedToken')}", "other_field": "value"}

Wenn nicht „gelöst“:

  • Senden Sie eine Fehlerbenachrichtigung per Teams oder E-Mail

Komplette Flow-Struktur

[Manual Trigger (sitekey, pageurl)]
    ↓
[Initialize Variables: solveStatus, solvedToken]
    ↓
[HTTP: Submit to CaptchaAI /in.php]
    ↓
[Parse JSON]
    ↓
[Condition: status = 1?]
    ↓ Yes
[Do Until: solveStatus ≠ pending]
    ├── [Delay: 5 seconds]
    ├── [HTTP: Poll CaptchaAI /res.php]
    ├── [Parse JSON]
    └── [Condition: Solved or Error?]
    ↓
[Condition: solveStatus = solved?]
    ↓ Yes
[HTTP: Submit form with token]
    ↓
[Compose: Success response]

Fehlerbehebung

Problem Ursache Lösung
Token wird erzeugt, aber vom Ziel abgelehnt sitekey, pageurl oder Session-Kontext stimmen nicht Erfasse Parameter erneut und verwende den Token in derselben Browser- oder HTTP-Sitzung
Polling endet im Timeout Intervall, Wartezeit oder Fehlerbehandlung sind zu eng gesetzt Poll alle 5-10 Sekunden, trenne Timeout von echten Fehlercodes und logge die Ursache
Beispiel funktioniert lokal, aber nicht im Workflow Callback, Form-Feld oder Token-Injektion fehlt in der echten Zielkette Prüfe den exakten Übergabepfad vom Solver bis zur finalen Zielanfrage

Verwandte Leitfäden

  • Make (Integromat) + CaptchaAI
  • n8n + CaptchaAI No-Code-Automatisierung
  • Zapier + CaptchaAI No-Code-Automatisierung

Diskussionen (0)

Noch keine Kommentare.