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

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

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

Основне використання

Спочатку ознайомтеся з основними способами використання, у порівнянні з Recaptcha2, нам потрібно додатково передати параметр page_action, цей параметр потрібно отримати з коду, URL швидкості мережі, що демонструється, є: https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php, нижче показано один із способів отримання:

Швидкий метод:

Відкрийте f12, а потім на сторінці Element знайдіть .execute(, у червоній рамці ми можемо побачити параметр action, одночасно після execute йде рядок символів, це також вміст, необхідний далі, конкретно, як показано на малюнку нижче.

Далі потрібно ввести URL сайту, на якому потрібно обробити код, щоб отримати оброблений результат, спочатку потрібно просто передати поле website_url, а в кінці ще потрібно ввести параметр website_key, цей вміст можна отримати вище, це також рядок символів після execute. Тепер ми можемо заповнити відповідні дані на інтерфейсі, як показано на малюнку:

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

Натисніть кнопку «Спробувати», щоб провести тестування, як показано на малюнку, тут ми отримали наступний результат:
Результат повернення містить кілька полів, описаних нижче:
  • token - результат перевірки після обробки завдання Recaptcha3.
  • started_at, finished_at - час початку обробки запиту та отримання результату, Unix-час (секунди, з плаваючою комою).
  • elapsed - загальний час обробки (секунди).
Ми отримали результат перевірки Recaptcha3, який можна використовувати для POST або GET запитів до цільового сайту, одноразового використання, термін дії 120 секунд, рекомендується використовувати протягом 60 секунд. Далі буде коротко описано один із способів, як надіслати згенерований токен на цільовий сайт: Виклик коду Python для перевірки токена:
Отже, ми можемо отримати результат:
Можна побачити, що success означає результат обробки верифікації, отже, ми успішно пройшли верифікацію Recaptcha3. Крім того, якщо ви хочете згенерувати відповідний код для інтеграції, ви можете просто скопіювати його, наприклад, код 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 та токен:
Опис тарифікації: в асинхронному режимі створення завдання та читання статусу «в обробці» не підлягають тарифікації; клієнт сплачує один раз при першому успішному читанні результату (як і в поточній поведінці та ціні синхронного режиму). Сервер самостійно просуває завдання, але не стягує плату за те, що завдання завершилося раніше в фоновому режимі. Якщо завдання не буде успішно завершено протягом 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 для розпізнавання протоколу Recaptcha3, щоб користувачі не повинні були розпізнавати та натискати на зображення коду Recaptcha3, а лише подавати Website Key для автоматичного декодування на сервері та завершення верифікації. Сподіваємося, що цей документ допоможе вам краще інтегрувати та використовувати цей API. Якщо у вас є будь-які питання, будь ласка, звертайтеся до нашої команди технічної підтримки.