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

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

Чтобы использовать API распознавания протокола Recaptcha2, сначала перейдите в консоль Ace Data Cloud и получите ваш API Token для резервного копирования. Если вы еще не вошли в систему или не зарегистрировались, вы будете автоматически перенаправлены на страницу входа, где вас пригласят зарегистрироваться и войти в систему, после чего вы будете автоматически возвращены на текущую страницу. Один API Token позволяет использовать все услуги платформы, не нужно подавать отдельные заявки на каждую услугу. При первой подаче заявки предоставляется бесплатный лимит, который можно использовать бесплатно; при недостаточном лимите можно пополнить общий баланс в консоли.
📘 Полная документация: API распознавания протокола Recaptcha2 →

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

Сначала ознакомьтесь с основным способом использования, который заключается в вводе 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, после подачи заявки его можно выбрать из выпадающего списка.
Также установлен Body запроса, включая:
  • website_url: URL сайта, на котором нужно обработать капчу.
  • website_key: идентификатор сайта в Recaptcha2.
После выбора можно заметить, что справа также сгенерирован соответствующий код, как показано на изображении:

Нажмите кнопку «Попробовать», чтобы провести тестирование, как показано на изображении выше, здесь мы получили следующий результат:
Результат содержит несколько полей, описание которых приведено ниже:
  • 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 的对接代码如下:

异步模式(async)

默认情况下 API 是同步阻塞的:一次请求会一直等待,直到 token 处理完成才返回。如果你在做多打码器轮换(multi-solver rotation),希望「提交任务后立即拿到 task_id,先去调度其他打码器,稍后再回来取结果」,可以在请求体中传入 async: true 传入 async: true 后,接口会立即返回一个 task_id,而不会阻塞等待:
随后使用该 task_id 轮询 POST /captcha/tasks(建议每 3~5 秒一次)来获取结果:
处理中会返回 status: processing
处理完成会返回 status: ready 和 token:
计费说明:异步模式下,创建任务与轮询「处理中」都不计费;仅在成功取到结果时计费一次(与同步模式的价格一致)。因此在轮换中取消尚未完成的任务不会产生费用。/captcha/tasks 对所有验证码接口(token 与 recognition 系列)通用,用同一个 task_id 轮询即可。

错误处理

在调用 API 时,如果遇到错误,API 会返回相应的错误代码和信息。例如:
  • 400 token_mismatched:Bad request, possibly due to missing or invalid parameters.
  • 400 api_not_implemented:Bad request, possibly due to missing or invalid parameters.
  • 401 invalid_token:Unauthorized, invalid or missing authorization token.
  • 429 too_many_requests:Too many requests, you have exceeded the rate limit.
  • 500 api_error:Internal server error, something went wrong on the server.

错误响应示例

结论

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