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

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

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

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

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

Нам нужно кликнуть по флажку кода, чтобы появилось изображение кода. На изображении выше желтая стрелка указывает на текст, который является значением question в дальнейшем. Сначала необходимо передать простое поле image, которое представляет собой конкретное изображение кода Recaptcha2, это изображение указано красной стрелкой на изображении выше, и его необходимо масштабировать до стандартного размера (100x100, 300x300, 450x450), чтобы служба могла определить тип изображения. Сжатие изображения необходимо выполнить самостоятельно, в этой статье рекомендуется использовать сайт для сжатия, где вы можете изменить размеры и размер изображения, результат сжатия показан на изображении ниже: Также необходимо ввести параметры распознавания, связанные с изображением кода, question. Мы предоставили ниже таблицу содержимого, которая может служить справкой:

Таблица содержимого на китайском

Таблица содержимого на английском

Из вышеизложенного видно, что параметр question должен быть установлен на соответствующий /m/01pns0 для пожарного гидранта, конкретное содержимое показано ниже:

Мы видим, что здесь мы установили заголовки запроса, включая:
  • accept: формат ответа, который вы хотите получить, здесь указано application/json, то есть формат JSON.
  • authorization: ключ для вызова API, который можно выбрать из выпадающего списка после подачи заявки.
Также установлен тело запроса, включая:
  • image: закодированное в Base64 изображение кода.
  • question: ID вопроса, пожалуйста, смотрите таблицу, начинается с /m/.
После выбора можно увидеть, что справа также сгенерирован соответствующий код, как показано на изображении:

Нажмите кнопку «Попробовать», чтобы провести тестирование, как показано на изображении, и мы получили следующий результат:
Возвращаемый результат содержит несколько полей, описание которых приведено ниже:
  • solution, результат проверки после обработки задачи с изображением кода Recaptcha2.
    • size, размер изображения кода Recaptcha2.
    • label, содержимое, распознанное на изображении кода Recaptcha2.
    • confidences, уровень уверенности в распознавании области изображения кода Recaptcha2, области начинаются с 0.
    • objects, области, соответствующие распознанному содержимому на изображении кода Recaptcha2, области начинаются с 0.
    • type, тип задачи с изображением кода Recaptcha2, если несколько областей, то multi.
  • started_at, finished_at: время начала обработки текущего запроса и время получения результата, Unix временная метка (в секундах, с плавающей запятой).
  • elapsed: общее время обработки (в секундах).
Мы видим, что получили результат проверки изображения кода Recaptcha2, сначала мы разделили области изображения кода, как показано на следующем изображении:

Области начинаются с 0, из результата objects мы получили 2, 5, 7, нам нужно просто симулировать клик по этим трем областям, чтобы пройти проверку. Кроме того, если вы хотите сгенерировать соответствующий код интеграции, вы можете просто скопировать сгенерированный код, например, код CURL будет следующим:
Код для интеграции на Python выглядит следующим образом:

Асинхронный режим (async)

По умолчанию API является синхронным и блокирующим: один запрос будет ждать, пока не завершится обработка результата распознавания. Если вы делаете многократную ротацию кодировщиков (multi-solver rotation) и хотите «сразу получить task_id после отправки задачи, а затем переключиться на другие кодировщики и позже вернуться за результатом», вы можете передать async: true в теле запроса. После передачи async: true интерфейс сразу вернет task_id, не блокируя ожидание:
Если вы хотите активно отслеживать прогресс, вы можете использовать этот task_id для запроса POST /captcha/tasks (рекомендуется каждые 3-5 секунд). Этот интерфейс не будет инициировать или продвигать обработку задач; даже если не запрашивать, отключить интернет или выйти из клиента, сервер продолжит обработку:
В процессе обработки будет возвращен status: processing:
После завершения обработки будет возвращен status: ready и результат распознавания solution (структура полей полностью совпадает с синхронным режимом):
Условия оплаты: в асинхронном режиме создание задачи и чтение статуса «в процессе» не подлежат оплате; оплата происходит один раз при первом успешном чтении результата клиентом (что соответствует существующему поведению и ценам синхронного режима). Сервер будет самостоятельно продвигать задачи, но не будет взимать плату заранее, если задача завершится в фоновом режиме. Если задача не будет успешно завершена в течение 120 секунд, она будет завершена с HTTP 504 timeout, без оплаты. /captcha/tasks не отвечает за продвижение задач.

Обработка ошибок

При вызове API, если возникнет ошибка, API вернет соответствующий код ошибки и информацию. Например:
  • 400 token_mismatched: Неверный запрос, возможно, из-за отсутствия или недействительных параметров.
  • 400 api_not_implemented: Неверный запрос, возможно, из-за отсутствия или недействительных параметров.
  • 401 invalid_token: Неавторизован, недействительный или отсутствующий токен авторизации.
  • 429 too_many_requests: Слишком много запросов, вы превысили лимит частоты.
  • 500 api_error: Внутренняя ошибка сервера, что-то пошло не так на сервере.

Пример ответа об ошибке

Заключение

С помощью этого документа вы узнали, как использовать API распознавания изображений Recaptcha2, чтобы позволить пользователям вводить распознаваемое содержимое и изображение Recaptcha2, а затем возвращать координаты маленького изображения, на которое нужно нажать, для завершения проверки. Надеемся, что этот документ поможет вам лучше интегрировать и использовать этот API. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь обращаться в нашу техническую поддержку.