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

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

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

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

Спочатку розгляньте основний спосіб використання, а саме введіть URL сайту, на якому потрібно обробити hCaptcha, і ви отримаєте оброблений результат. Спочатку потрібно просто передати поле website_url, наш приклад сайту: https://accounts.hcaptcha.com/demo, нам потрібно отримати website_key на сторінці website_url, спочатку відкрийте цю веб-сторінку, натисніть F12 для входу в консоль, а потім у вкладці Element виконайте глобальний пошук за hcaptcha-demo, ми можемо отримати наступний результат:

Тут data-sitekey відповідає рядку, який є значенням website_key, нижче наведені конкретні результати параметрів:

Ми можемо бачити, що тут ми налаштували заголовки запиту, включаючи:
  • accept: який формат відповіді ви хочете отримати, тут вказано application/json, тобто формат JSON.
  • authorization: ключ для виклику API, після подачі заявки ви можете вибрати його зі списку.
Також налаштовано тіло запиту, яке включає:
  • website_url: URL сайту, на якому потрібно обробити капчу.
  • website_key: ідентифікатор сайту в hCaptcha.
  • rqdata: необов’язковий. Виклик hCaptcha Enterprise може надати data-rqdata на сторінці, у разі таких викликів заповніть його початкове значення; звичайна hCaptcha не потребує заповнення.
  • proxy: необов’язковий, використовуйте свій проксі (Bring Your Own Proxy). Після налаштування система буде використовувати наданий вами проксі IP для розв’язання капчі, щоб контролювати якість вихідного IP (наприклад, уникнути блокування цільовим сайтом через публічний проксі IP, що призводить до повернення 410 Gone). Формат: scheme://[user:pass@]host:port, scheme підтримує http/https/socks4/socks5, наприклад, http://user:pass@1.2.3.4:8080. Якщо не заповнити, буде використано проксі за замовчуванням платформи.
Після вибору ви також можете помітити, що з правого боку згенеровано відповідний код, як показано на малюнку:

Натисніть кнопку «Спробувати», щоб провести тестування, як показано на малюнку, тут ми отримали наступний результат:
Можна побачити, що ми отримали результати обробки hCaptcha CAPTCHA, а потім можемо використовувати їх для POST або імітації подання на цільовий веб-сайт, одноразового використання, термін дії 120 секунд, рекомендується використовувати протягом 60 секунд. Далі буде надано фрагмент CURL версії, щоб подати оброблений токен на цільовий веб-сайт для проходження Recaptcha2 CAPTCHA. Спочатку нам потрібно дізнатися, як веб-сайт надсилає POST запит, щоб ми могли передати згенерований токен. Спочатку відкриваємо консоль F12, потім вручну проходимо перевірку, в кінці ми можемо побачити, що веб-сайт надіслав POST запит, нам потрібно лише переглянути конструкцію цього POST запиту, конкретний процес виглядає так:
  • Спочатку вручну проходимо перевірку, конкретно, як на зображенні нижче:

  • Потім натискаємо submit, спостерігаємо за змінами в мережі консолі, конкретно, як на зображенні нижче:

  • Аналізуємо конструкцію цього POST запиту, в кінці можемо клацнути правою кнопкою миші на цьому запиті та скопіювати код CURL, конкретно, як на зображенні нижче:

З аналізу зображення видно, що URL цього POST запиту: https://accounts.hcaptcha.com/demo, нам потрібно лише подати параметри g-recaptcha-response, h-captcha-response та email, потім ми просто передаємо оброблений токен у нижче data, виклик CURL коду для перевірки токена виглядає так:
Виклик коду Python для перевірки токена виглядає так:
Потім ми спостерігаємо, що консоль отримала такий результат:

Врешті-решт, ми пройшли перевірку hCaptcha. Крім того, якщо ви хочете згенерувати відповідний код інтеграції, ви можете просто скопіювати його, наприклад, код 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 для розпізнавання hCaptcha, щоб користувачі не повинні були розпізнавати та натискати на зображення hCaptcha CAPTCHA, а лише подавати Website Key для автоматичного декодування на сервері, завершуючи перевірку. Сподіваємося, що цей документ допоможе вам краще інтегрувати та використовувати цей API. Якщо у вас є будь-які питання, будь ласка, звертайтеся до нашої технічної підтримки.