Skip to main content
Este artigo apresentará uma descrição da integração da API de reconhecimento do protocolo Recaptcha2, que permite aos usuários validar sem precisar reconhecer e clicar nas imagens do captcha do Recaptcha2, bastando enviar a Chave do Site para realizar a decodificação automática em segundo plano e completar a validação.

Processo de Solicitação

Para usar a API, é necessário primeiro acessar a página correspondente da API de Reconhecimento do Protocolo Recaptcha2 para solicitar o serviço correspondente. Ao entrar na página, clique no botão “Adquirir”, conforme mostrado na imagem: Se você ainda não estiver logado ou registrado, será redirecionado automaticamente para a página de login, convidando-o a se registrar e fazer login. Após o login ou registro, você será redirecionado de volta para a página atual. Na primeira solicitação, haverá um crédito gratuito disponível, permitindo o uso gratuito dessa API.

Uso Básico

Primeiro, entenda a forma básica de uso, que é inserir a URL do site que precisa processar o captcha, e você poderá obter o resultado processado. Primeiro, é necessário passar um campo website_url. Nosso site de exemplo é: https://www.google.com/recaptcha/api2/demo, precisamos obter a website_key na página website_url. Primeiro, abra essa página, pressione F12 para acessar o console e, em seguida, faça uma busca global na aba Element por recaptcha-demo, e podemos obter o seguinte resultado:

A string correspondente ao data-sitekey é o valor da website_key, abaixo estão os resultados dos parâmetros específicos:

Podemos ver que aqui configuramos os Headers da Requisição, incluindo:
  • accept: o formato de resposta desejado, aqui preenchido como application/json, ou seja, formato JSON.
  • authorization: a chave para chamar a API, que pode ser selecionada diretamente após a solicitação.
Além disso, configuramos o Corpo da Requisição, incluindo:
  • website_url: a URL do site que precisa processar o captcha.
  • website_key: o identificador da chave do site no Recaptcha2.
Após a seleção, você pode notar que o código correspondente também foi gerado à direita, conforme mostrado na imagem:

Clique no botão “Tentar” para realizar o teste, como mostrado na imagem acima, e aqui obtivemos o seguinte resultado:
O resultado contém vários campos, conforme descrito abaixo:
  • token, o resultado da verificação após o processamento da tarefa Recaptcha2.
Podemos ver que obtivemos o resultado da verificação do Recaptcha2, que pode ser usado para enviar um POST ou simular o envio para o site de destino, sendo de uso único, com validade de 120s, recomendando-se o uso dentro de 60s. A seguir, será fornecido um trecho em Python para enviar o token processado ao site de destino para passar pela verificação do Recaptcha2. Primeiro, precisamos descobrir como o site envia a solicitação POST, para que possamos inserir o token gerado. Precisamos abrir o console F12 e realizar a verificação manualmente. Por fim, podemos ver que o site enviou uma solicitação POST. Precisamos apenas verificar a construção dessa solicitação POST. O processo específico é o seguinte:
  • Primeiro, verifique manualmente, conforme mostrado na imagem abaixo:

  • Em seguida, clique em enviar e observe as mudanças na rede do console, conforme mostrado na imagem abaixo:

  • Analise a construção da solicitação POST enviada e, por fim, clique com o botão direito nessa solicitação para copiar o código CURL, conforme mostrado na imagem abaixo:

由上图分析可知,此次POST请求的URL为:https://www.google.com/recaptcha/api2/demo,我们仅需要提交参数 g-recaptcha-response,然后我们只需要将处理后的token传入下面的data中即可,调用token进行验证的具体的CURL代码如下:
调用token验证所对应的Python代码如下:
然后我们运行后代码观察控制台变得了这样的结果:

最后我们就通过了Recaptcha2验证码的协议验证。 另外如果想生成对应的对接代码,可以直接复制生成,例如 CURL 的代码如下:
Python 的对接代码如下:

错误处理

在调用 API 时,如果遇到错误,API 会返回相应的错误代码和信息。例如:
  • 400 token_mismatched:Requisição inválida, possivelmente devido a parâmetros ausentes ou inválidos.
  • 400 api_not_implemented:Requisição inválida, possivelmente devido a parâmetros ausentes ou inválidos.
  • 401 invalid_token:Não autorizado, token de autorização inválido ou ausente.
  • 429 too_many_requests:Muitas requisições, você excedeu o limite de taxa.
  • 500 api_error:Erro interno do servidor, algo deu errado no servidor.

错误响应示例

结论

通过本文档,您已经了解了如何使用 Recaptcha2 协议识别 API 让用户无需识别和点选 Recaptcha2 验证码图片,仅需通过提交 Website Key 即可实现后台自动解码,完成验证。希望本文档能帮助您更好地对接和使用该 API。如有任何问题,请随时联系我们的技术支持团队。