Integrações

Retool + CaptchaAI: ferramenta interna para tratamento de formulários CAPTCHA

O Retool permite que as equipes criem ferramentas internas rapidamente. Quando essas ferramentas precisam interagir com serviços externos protegidos por CAPTCHA – envio de formulários, extração de dados de portais ou automatização de fluxos de trabalho de terceiros –CaptchaAIlida com a solução por meio de consultas da API REST do Retool.

Este guia mostra como configurar CaptchaAI como um recurso da API REST no Retool, criar consultas para enviar e recuperar soluções CAPTCHA e conectá-las à interface do usuário do seu aplicativo.

Cenário do mundo real

Sua equipe de operações usa um aplicativo Retool para enviar dados a um portal governamental que exige reCAPTCHA v2. Em vez de resolver CAPTCHAs manualmente, o aplicativo Retool:

  1. Toma a chave do site e o URL da página como entrada
  2. Envia o CAPTCHA para CaptchaAI
  3. Enquetes para o resultado
  4. Exibe o token resolvido para uso no envio do formulário

Etapa 1: Crie CaptchaAI como um recurso da API REST

Em Retool, navegue até RecursosCriar novoAPI REST:

Campo Valor
Nome CaptchaAI
URL base https://ocr.captchaai.com
Autenticação Nenhum (chave de API enviada como parâmetro de consulta)

Salve o recurso. Você fará referência a ele em consultas.

Etapa 2: criar a consulta de envio

Crie uma nova consulta chamada submitCaptcha:

Configuração Valor
Recurso CaptchaAI
Tipo de ação OBTER
Caminho do URL /in.php

Parâmetros de consulta:

Chave Valor
key {{secretsStore.CAPTCHAAI_API_KEY}}
method userrecaptcha
googlekey {{sitekeyInput.value}}
pageurl {{pageurlInput.value}}
json 1

Armazene sua chave de API no Retool's Secrets Store (Configurações → Segredos) para evitar codificá-la.

Transformador (opcional):

// Parse the response
const data = {{ submitCaptcha.data }};
if (data.status === 1) {
  return { taskId: data.request, status: 'submitted' };
}
return { error: data.request, status: 'failed' };

Etapa 3: criar a consulta de enquete

Crie uma consulta chamada pollResult:

Configuração Valor
Recurso CaptchaAI
Tipo de ação OBTER
Caminho do URL /res.php

Parâmetros de consulta:

Chave Valor
key {{secretsStore.CAPTCHAAI_API_KEY}}
action get
id {{submitCaptcha.data.request}}
json 1

Transformador:

const data = {{ pollResult.data }};
if (data.status === 1) {
  return { token: data.request, status: 'solved' };
}
if (data.request === 'CAPCHA_NOT_READY') {
  return { status: 'pending' };
}
return { error: data.request, status: 'error' };

Etapa 4: construir o ciclo de votação com JavaScript

Crie uma consulta JavaScript chamada solveCaptcha que orquestra o ciclo de envio e pesquisa:

// solveCaptcha — JavaScript Query
async function solve() {
  // Submit the CAPTCHA task
  await submitCaptcha.trigger();
  const submitResult = submitCaptcha.data;

  if (submitResult.status !== 1) {
    return { error: submitResult.request, status: 'submit_failed' };
  }

  const taskId = submitResult.request;

  // Wait 15 seconds before first poll
  await new Promise(r => setTimeout(r, 15000));

  // Poll up to 20 times (100 seconds max)
  for (let i = 0; i < 20; i++) {
    await pollResult.trigger({
      additionalScope: { taskId: taskId }
    });

    const result = pollResult.data;

    if (result.status === 1) {
      return { token: result.request, status: 'solved' };
    }

    if (result.request !== 'CAPCHA_NOT_READY') {
      return { error: result.request, status: 'error' };
    }

    // Wait 5 seconds before next poll
    await new Promise(r => setTimeout(r, 5000));
  }

  return { error: 'Polling timeout', status: 'timeout' };
}

return solve();

Etapa 5: construir a IU

Crie um layout simples do aplicativo Retool:

Seção de entrada

  • Entrada de texto (sitekeyInput): rótulo "reCAPTCHA Sitekey"
  • Entrada de texto (pageurlInput): rótulo "URL da página"
  • Botão (solveButton): Etiqueta "Resolver CAPTCHA", onClick → solveCaptcha.trigger()

Seção de status

  • Texto componente: {{ solveCaptcha.isFetching ? "Solving..." : "" }}
  • Indicador de carregamento: Visível quando {{ solveCaptcha.isFetching }}

Seção de resultados

  • Área de texto (tokenOutput):
  • Valor: {{ solveCaptcha.data?.token || '' }}
  • Rótulo: "Token Resolvido"
  • Somente leitura
  • Botão Copiar: copia o token para a área de transferência
  • Selo de status: Mostra sucesso/error com base em {{ solveCaptcha.data?.status }}

Etapa 6: use o token em consultas downstream

Depois de resolvido, use o token em outra consulta do Retool que envie o formulário:

Crie uma consulta chamada submitForm:

Configuração Valor
Recurso Sua API de destino
Tipo de ação POSTAR
Corpo Dados do formulário incluindo g-recaptcha-response: {{solveCaptcha.data.token}}

Conecte isso a um botão "Enviar formulário" que é ativado somente quando {{ solveCaptcha.data?.status === 'solved' }}.

Solução de problemas

Problema Causa Correção
ERROR_WRONG_USER_KEY A chave de API não está no Secrets Store ou tem valor errado Verifique a chave em Configurações -> Segredos
A consulta retorna texto bruto em vez de JSON Parâmetro json=1 ausente Adicione json: 1 aos parâmetros de consulta
Tempo limite de votação O tipo CAPTCHA precisa de mais tempo de resolução Aumente as iterações de pesquisa de 20 para 30
submitCaptcha.data é indefinido A consulta ainda não foi executada Certifique-se de que a consulta de envio seja executada antes da enquete
Tempo limite da consulta JavaScript Limite de 120 segundos do Retool para consultas JS Reduza a votação para 20 iterações com intervalos de 5 segundos

Perguntas frequentes

Posso armazenar a chave API CaptchaAI com segurança no Retool?

Sim. Use o Secrets Store do Retool (Environment → Secrets) e referencie-o como {{secretsStore.CAPTCHAAI_API_KEY}}. Isso mantém a chave fora das definições de consulta visíveis para os criadores de aplicativos.

Isso funciona com Retool Cloud e auto-hospedado?

Sim, ambas as versões suportam recursos da API REST e consultas JavaScript. O Retool auto-hospedado também pode acessar a API do CaptchaAI diretamente, sem requisitos de proxy.

Posso construir um módulo reutilizável de resolução de CAPTCHA no Retool?

Sim. Crie um módulo Retool com as consultas submit/poll e componentes de UI e, em seguida, incorpore-o em qualquer aplicativo que precise de solução CAPTCHA.

Quais tipos de CAPTCHA posso resolver através do Retool?

Qualquer tipo CaptchaAI suporta - reCAPTCHA v2/v3, Cloudflare Turnstile, CAPTCHAs de imagem. Ajuste o method e os parâmetros na consulta de envio de acordo.

Artigos relacionados

Próximas etapas

Adicione a solução CAPTCHA às suas ferramentas internas do Retool -obtenha sua chave API CaptchaAIe configure o recurso REST API.

Guias relacionados:

Os comentários estão desativados para este artigo.