Microsoft Power Automate (anciennement Flow) automatise les processus métier dans l'écosystème Microsoft et des centaines de services tiers. Lorsque ces flux de travail rencontrent des formulaires Web ou des API protégés par CAPTCHA,CaptchaAIpeut les résoudre via le connecteur HTTP de Power Automate.
Ce guide montre comment créer un flux Power Automate qui soumet des CAPTCHA à CaptchaAI, interroge les résultats et utilise le jeton résolu pour terminer les envois de formulaires.
Scénario du monde réel
Votre équipe financière doit automatiser la récupération des données à partir d'un portail fournisseur affichant reCAPTCHA v2. Au lieu d’une intervention manuelle, un flux Power Automate :
- Reçoit les paramètres CAPTCHA (sitekey, URL de la page)
- Les envoie à CaptchaAI
- Attend la solution
- Utilise le jeton pour authentifier et récupérer les données
Étape 1 : Créer le flux
Dans Power Automate, créez un flux cloud instantané avec un déclencheur manuel (ou tout déclencheur de votre choix).
Ajouter des paramètres d'entrée au déclencheur
Ajoutez deux entrées de texte au déclencheur manuel :
- sitekey – La clé de site reCAPTCHA v2
- pageurl – L'URL de la page avec le CAPTCHA
Étape 2 : Soumettre la tâche CAPTCHA
Ajoutez une action HTTP (connecteur Premium) :
| Paramètre | Valeur |
|---|---|
| Méthode | OBTENIR |
| URI | https://ocr.captchaai.com/in.php |
Requêtes :
| Clé | Valeur |
|---|---|
| clé | Votre clé API CaptchaAI |
| méthode | userrecaptcha |
| clé google | @{triggerBody()['text']} (entrée de la clé de site) |
| URL de la page | @{triggerBody()['text_1']} (entrée pageurl) |
| json | 1 |
Analysez la réponse : Ajoutez une action Analyser JSON après l'action HTTP :
Schéma :
{
"type": "object",
"properties": {
"status": { "type": "integer" },
"request": { "type": "string" }
}
}
Contenu : @{body('HTTP')}
Étape 3 : Valider la réponse de soumission
Ajoutez une action Condition :
- Condition :
@{body('Parse_JSON')?['status']}est égal à1
Si non (échec de la soumission) :
- Ajoutez une action Terminer avec le statut « Échec » et le message :
Submit error: @{body('Parse_JSON')?['request']}.
Si oui :
- Continuer vers la boucle d'interrogation
Étape 4 : Créer la boucle d'interrogation
Dans la branche "Si oui", ajoutez une boucle Do jusqu'à :
Condition de boucle : @{variables('solveStatus')} n'est pas égal à pending
Avant la boucle, initialisez deux variables :
- solveStatus (Chaîne) =
pending - solvedToken (Chaîne) = vide
Dans la boucle Do jusqu'à, ajoutez ces actions dans l'ordre :
4a. Retard
Ajoutez une action Délai : 5 secondes.
4b. HTTP – Sondage pour le résultat
| Paramètre | Valeur |
|---|---|
| Méthode | OBTENIR |
| URI | https://ocr.captchaai.com/res.php |
Requêtes :
| Clé | Valeur |
|---|---|
| clé | Votre clé API CaptchaAI |
| action | get |
| identifiant | @{body('Parse_JSON')?['request']} |
| json | 1 |
4c. Analyser JSON – Réponse au sondage
Utilisez le même schéma qu'à l'étape 2.
4j. État – Vérifier l'état
Condition : @{body('Parse_JSON_2')?['status']} est égal à 1
Si oui (résolu) :
- Définir la variable
solvedToken=@{body('Parse_JSON_2')?['request']} - Définir la variable
solveStatus=solved
Si non :
- Ajoutez une autre condition :
@{body('Parse_JSON_2')?['request']}n'est pas égal àCAPCHA_NOT_READY - Si vrai (erreur), définissez
solveStatus=error - Si faux (toujours en attente), ne faites rien (la boucle continue)
Définissez la limite de boucle Do jusqu'à :
- Nombre : 20 (itérations maximales)
- Délai d'attente : PT3M (3 minutes)
Étape 5 : Utilisez le jeton résolu
Après la boucle, ajoutez une Condition pour vérifier @{variables('solveStatus')} :
Si = "résolu" :
- Utilisez
@{variables('solvedToken')}dans un HTTP POST pour soumettre le formulaire - Ou envoyez-le par e-mail, message Teams ou tout autre connecteur
Exemple HTTP POST pour soumettre un formulaire :
| Paramètre | Valeur |
|---|---|
| Méthode | POSTER |
| URI | URL du formulaire cible |
| Corps | {"g-recaptcha-response": "@{variables('solvedToken')}", "other_field": "value"} |
Si ce n'est pas "résolu" :
- Envoyer une notification d'erreur via Teams ou par e-mail
Structure de flux complète
[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]
Dépannage
| Problème | Parce que | Corriger |
|---|---|---|
| Connecteur HTTP non disponible | Le forfait gratuit n'inclut pas les connecteurs Premium | Effectuez une mise à niveau vers Power Automate Premium ou utilisez un connecteur personnalisé |
| L'analyse de JSON échoue | Le corps de la réponse est du texte, pas du JSON | Assurez-vous que json=1 est dans les paramètres de requête |
| La boucle s'exécute indéfiniment | Variable solveStatus non mise à jour |
Vérifiez que les noms de variables correspondent exactement dans les actions Définir la variable |
| Erreur 403 de CaptchaAI | Restriction IP ou clé API incorrecte | Vérifiez la clé API ; vérifiez si la liste blanche IP est activée sur votre compte |
| Délai d'expiration du flux | Le délai d'expiration par défaut de 30 jours est correct, mais le délai d'expiration des actions individuelles est de 2 minutes. | Le délai d'expiration Do Until (PT3M) gère cela ; augmenter si besoin |
FAQ
Cela nécessite-t-il une licence Premium Power Automate ?
Oui, le connecteur HTTP est une fonctionnalité Premium. Si vous bénéficiez d’un forfait gratuit, envisagez d’utiliser un connecteur personnalisé ou un routage via Azure Functions.
Puis-je résoudre d’autres types de CAPTCHA ?
Oui. Remplacez le paramètre method par turnstile pour Cloudflare Turnstile ou post pour les CAPTCHA d'image. Ajustez les paramètres requis en conséquence.
Comment stocker la clé API en toute sécurité ?
Utilisez le connecteur Environment Variables ou Azure Key Vault de Power Automate pour éviter de coder en dur la clé API dans la définition de flux.
Puis-je déclencher ce flux depuis Power Apps ?
Oui. Utilisez le connecteur Power Automate dans Power Apps pour appeler ce flux, en transmettant sitekey et pageurl comme paramètres et en recevant le jeton.
Articles connexes
- Comment résoudre le rappel Recaptcha V2 à l'aide de l'API
- Gestion du tourniquet Recaptcha V2 sur le même site
- Mécanisme de rappel Recaptcha V2
Prochaines étapes
Ajoutez la résolution CAPTCHA à vos flux de travail Power Automate -récupérez votre clé API CaptchaAIet créer le flux.
Guides associés :
- Zapier + CaptchaAI : résolution de CAPTCHA sans code
- Marque (Integromat) + CaptchaAI
- Retool + CaptchaAI : gestion des CAPTCHA de l'outil interne