Microsoft Power Automate (anteriormente Flow) automatiza los procesos comerciales en todo el ecosistema de Microsoft y cientos de servicios de terceros. Cuando esos flujos de trabajo encuentran formularios web o API protegidos por CAPTCHA,CaptchaAIPuede resolverlos a través del conector HTTP de Power Automate.
Esta guía muestra cómo crear un flujo de Power Automate que envía CAPTCHA a CaptchaAI, sondea los resultados y utiliza el token resuelto para completar los envíos de formularios.
Escenario del mundo real
Su equipo de finanzas necesita automatizar la recuperación de datos desde un portal de proveedores que muestra reCAPTCHA v2. En lugar de intervención manual, un flujo de Power Automate:
- Recibe los parámetros CAPTCHA (clave del sitio, URL de la página)
- Los envía a CaptchaAI
- Espera la solución
- Utiliza el token para autenticar y recuperar los datos.
Paso 1: crear el flujo
En Power Automate, cree un flujo de nube instantáneo con un activador manual (o cualquier activador de su elección).
Agregar parámetros de entrada al disparador
Agregue dos entradas de texto al disparador manual:
- clave del sitio: la clave del sitio reCAPTCHA v2
- pageurl: la URL de la página con el CAPTCHA.
Paso 2: enviar la tarea CAPTCHA
Agregue una acción HTTP (conector Premium):
| Configuración | Valor |
|---|---|
| Método | OBTENER |
| URI | https://ocr.captchaai.com/in.php |
Consultas:
| clave | Valor |
|---|---|
| clave | Su clave API CaptchaAI |
| método | userrecaptcha |
| clave de google | @{triggerBody()['text']} (entrada de clave del sitio) |
| URL de página | @{triggerBody()['text_1']} (entrada de URL de página) |
| json | 1 |
Analizar la respuesta: Agregue una acción Analizar JSON después de la acción HTTP:
Esquema:
{
"type": "object",
"properties": {
"status": { "type": "integer" },
"request": { "type": "string" }
}
}
Contenido: @{body('HTTP')}
Paso 3: validar enviar respuesta
Agregue una acción Condición:
- Condición:
@{body('Parse_JSON')?['status']}es igual a1
Si no (el envío falló):
- Agregue una acción Terminar con estado "Error" y mensaje:
Submit error: @{body('Parse_JSON')?['request']}
Si es así:
- Continuar con el ciclo de votación
Paso 4: construir el circuito de sondeo
Dentro de la rama "Si es así", agregue un bucle Hacer hasta:
Condición de bucle: @{variables('solveStatus')} no es igual a pending
Antes del ciclo, inicialice dos variables:
- solveStatus (Cadena) =
pending - solvedToken (Cadena) = vacío
Dentro del bucle Hacer hasta, agregue estas acciones en secuencia:
4a. Retraso
Añade una acción de Retraso: 5 segundos.
4b. HTTP: consulta para obtener resultados
| Configuración | Valor |
|---|---|
| Método | OBTENER |
| URI | https://ocr.captchaai.com/res.php |
Consultas:
| clave | Valor |
|---|---|
| clave | Su clave API CaptchaAI |
| acción | get |
| identificación | @{body('Parse_JSON')?['request']} |
| json | 1 |
4c. Analizar JSON: respuesta a la consulta
Utilice el mismo esquema que el Paso 2.
4d. Condición: verificar estado
Condición: @{body('Parse_JSON_2')?['status']} es igual a 1
Si es así (resuelto):
- Establecer variable
solvedToken=@{body('Parse_JSON_2')?['request']} - Establecer variable
solveStatus=solved
Si no:
- Agregue otra condición:
@{body('Parse_JSON_2')?['request']}no es igual aCAPCHA_NOT_READY - Si es verdadero (error), establezca
solveStatus=error - Si es falso (aún pendiente), no haga nada (el ciclo continúa)
Establezca el límite del bucle Hacer hasta:
- Recuento: 20 (iteraciones máximas)
- Tiempo de espera: PT3M (3 minutos)
Paso 5: use el token resuelto
Después del ciclo, agregue una Condición para verificar @{variables('solveStatus')}:
Si es igual a "resuelto":
- Utilice
@{variables('solvedToken')}en una POST HTTP para enviar el formulario - O enviarlo por correo electrónico, mensaje de Teams o cualquier otro conector.
Ejemplo HTTP POST para enviar un formulario:
| Configuración | Valor |
|---|---|
| Método | PUBLICAR |
| URI | URL del formulario de destino |
| cuerpo | {"g-recaptcha-response": "@{variables('solvedToken')}", "other_field": "value"} |
Si no está "resuelto":
- Enviar una notificación de error a través de Teams o correo electrónico
Estructura de flujo completa
[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]
Solución de problemas
| problema | causa | Solución |
|---|---|---|
| Conector HTTP no disponible | El plan gratuito no incluye conectores Premium | Actualice a Power Automate Premium o use un conector personalizado |
| El análisis de JSON falla | El cuerpo de la respuesta es texto, no JSON | Asegúrese de que json=1 esté en los parámetros de consulta |
| El bucle se ejecuta indefinidamente | Variable solveStatus no actualizada |
Verifique que los nombres de las variables coincidan exactamente en las acciones Establecer variable |
| Error 403 de CaptchaAI | Restricción de IP o clave API incorrecta | Verificar la clave API; compruebe si la lista blanca de IP está habilitada en su cuenta |
| Tiempo de espera de flujo | El tiempo de espera predeterminado de 30 días está bien, pero el tiempo de espera de las acciones individuales es de 2 minutos. | El tiempo de espera Do Until (PT3M) se encarga de esto; aumentar si es necesario |
Preguntas frecuentes
¿Esto requiere una licencia Premium Power Automate?
Sí, el conector HTTP es una función Premium. Si tiene un plan gratuito, considere usar un conector personalizado o enrutarlo a través de Azure Functions.
¿Puedo resolver otros tipos de CAPTCHA?
Sí. Cambie el parámetro method a turnstile para Cloudflare Turnstile o post para CAPTCHA de imagen. Ajuste los parámetros requeridos en consecuencia.
¿Cómo almaceno la clave API de forma segura?
Utilice el conector Variables de entorno o Azure Key Vault de Power Automate para evitar codificar la clave API en la definición de flujo.
¿Puedo activar este flujo desde Power Apps?
Sí. Utilice el conector Power Automate en Power Apps para llamar a este flujo, pasando la clave del sitio y la URL de la página como parámetros y recibiendo el token.
Artículos relacionados
- Cómo resolver la devolución de llamada de Recaptcha V2 usando Api
- Torniquete Recaptcha V2 Manejo en el mismo sitio
- Mecanismo de devolución de llamada Recaptcha V2
Próximos pasos
Agregue resolución CAPTCHA a sus flujos de trabajo de Power Automate:obtenga su clave API CaptchaAIy construir el flujo.
Guías relacionadas:
- Zapier + CaptchaAI: resolución de CAPTCHA sin código
- Hacer (Integromat) + CaptchaAI
- Retool + CaptchaAI: Manejo interno de CAPTCHA de herramientas