Skip to main content
В данной статье будет представлено описание интеграции API распознавания протокола Recaptcha2, которое позволяет пользователям не распознавать и не нажимать на изображения капчи Recaptcha2, а просто отправить Website Key для автоматической декодировки на сервере и завершения проверки.

Процесс подачи заявки

Чтобы использовать API, сначала необходимо перейти на соответствующую страницу API распознавания протокола Recaptcha2 и подать заявку на соответствующую услугу. После перехода на страницу нажмите кнопку «Acquire», как показано на изображении: Если вы еще не вошли в систему или не зарегистрировались, вас автоматически перенаправит на страницу входа, где вас пригласят зарегистрироваться и войти в систему. После входа или регистрации вы автоматически вернетесь на текущую страницу. При первой подаче заявки будет предоставлен бесплатный лимит, который позволяет бесплатно использовать этот API.

Основное использование

Сначала ознакомьтесь с основным способом использования, который заключается в вводе URL-адреса сайта, для которого необходимо обработать капчу, чтобы получить обработанный результат. Сначала необходимо просто передать поле website_url. Наш пример сайта: https://www.google.com/recaptcha/api2/demo, нам нужно получить website_key на странице website_url. Сначала откройте эту веб-страницу, нажмите F12, чтобы открыть консоль, и затем выполните глобальный поиск по элементам на странице по запросу recaptcha-demo, мы можем получить следующий результат:

Где строка, соответствующая data-sitekey, является значением website_key, ниже приведены конкретные параметры результата:

Как видно, здесь мы установили заголовки запроса, включая:
  • accept: формат ответа, который вы хотите получить, здесь указано application/json, то есть формат JSON.
  • authorization: ключ API, который можно выбрать из выпадающего списка после подачи заявки.
Также установлен тело запроса, включая:
  • website_url: URL-адрес сайта, для которого необходимо обработать капчу.
  • website_key: идентификатор сайта в Recaptcha2.
После выбора можно заметить, что справа также сгенерирован соответствующий код, как показано на изображении:

Нажмите кнопку «Try», чтобы провести тестирование, как показано на изображении выше, здесь мы получили следующий результат:
Результат содержит несколько полей, описание которых следующее:
  • token, результат проверки после обработки задачи Recaptcha2.
Можно увидеть, что мы получили результат проверки Recaptcha2, который затем можно использовать для POST-запроса или имитации отправки на целевой сайт, одноразового использования, срок действия 120 секунд, рекомендуется использовать в течение 60 секунд. Далее будет предоставлен фрагмент на Python, который отправляет обработанный токен на целевой сайт для прохождения проверки Recaptcha2. Сначала нам нужно выяснить, как сайт отправляет POST-запрос, чтобы мы могли передать сгенерированный токен. Для этого нам нужно открыть консоль F12, затем вручную пройти проверку, в конце мы увидим, что сайт отправил POST-запрос. Нам нужно только посмотреть, как был построен этот POST-запрос, конкретный процесс следующий:
  • Сначала вручную пройти проверку, конкретно как на изображении ниже:

  • Затем нажать на submit, наблюдая за изменениями в сети консоли, конкретно как на изображении ниже:

  • Проанализировать структуру отправленного POST-запроса, в конце можно щелкнуть правой кнопкой мыши на этом запросе и скопировать код CURL, конкретно как на изображении ниже:

由上图分析可知,此次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:错误请求,可能是由于缺少或无效的参数。
  • 400 api_not_implemented:错误请求,可能是由于缺少或无效的参数。
  • 401 invalid_token:未授权,授权令牌无效或缺失。
  • 429 too_many_requests:请求过多,您已超出速率限制。
  • 500 api_error:内部服务器错误,服务器出现问题。

错误响应示例

结论

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