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. Якщо у вас є будь-які питання, будь ласка, звертайтеся до нашої технічної підтримки.