> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# hCaptcha API интеграции для распознавания изображений

> hCaptcha verification code recognition service 集成指南 - XHuoAPI

В этой статье будет представлено руководство по интеграции API распознавания изображений hCaptcha, которое позволяет по введенному пользователем содержимому и изображению hCaptcha вернуть координаты маленького изображения, на которое нужно кликнуть, для завершения проверки.

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

Чтобы использовать API, сначала необходимо перейти на соответствующую страницу [API распознавания изображений hCaptcha](https://api.xhuoapi.ai/documents/c9a5cc2f-e410-425f-857a-f8700205da6c) и подать заявку на соответствующую услугу. После перехода на страницу нажмите кнопку «Acquire», как показано на изображении:

![](https://cdn.xhuoapi.ai/q6ytrc.png)

Если вы еще не вошли в систему или не зарегистрированы, вы будете автоматически перенаправлены на страницу входа, где вас пригласят зарегистрироваться и войти в систему. После входа или регистрации вы будете автоматически возвращены на текущую страницу.

При первой подаче заявки будет предоставлен бесплатный лимит, который позволяет бесплатно использовать этот API.

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

Сначала ознакомьтесь с основным способом использования, который заключается в том, что нужно ввести изображение hCaptcha, которое необходимо обработать, чтобы получить обработанный результат. Сначала необходимо просто передать поле `queries`, которое представляет собой конкретное изображение hCaptcha. Мы должны сделать скриншот этого изображения с сайта, где есть hCaptcha, пример ссылки на сайт: `https://democaptcha.com/demo-form-eng/hcaptcha.html`, кликнув по флажку, вы сможете увидеть полное изображение капчи, как показано на следующем изображении:

<p>
  <img src="https://cdn.xhuoapi.ai/xryo59.png" width="500" className="m-auto" />
</p>

Поле `queries` — это скриншот изображения капчи, рекомендуется, чтобы размер изображения не превышал 100 КБ. Также необходимо сделать скриншот области, на которую указывает красная стрелка на изображении выше, и вам нужно самостоятельно сжать размер изображения, а также преобразовать его в кодировку Base64, как показано на следующем изображении:

<p>
  <img src="https://cdn.xhuoapi.ai/g8ikkb.png" width="500" className="m-auto" />
</p>

Также необходимо ввести параметр распознавания, связанный с изображением капчи, `question`, который поддерживает перевод на китайский и английский языки. Вы можете напрямую передать соответствующее содержимое распознавания. Из содержимого, выполненного желтой стрелкой на изображении выше, видно, что вводимое значение `question` должно быть `Please click on the UNIQUE object among the others.`. Конкретное содержимое следующее:

<p>
  <img src="https://cdn.xhuoapi.ai/empncr.png" width="500" className="m-auto" />
</p>

Как видно, мы установили заголовки запроса, включая:

* `accept`: формат ответа, который вы хотите получить, здесь указано `application/json`, то есть формат JSON.
* `authorization`: ключ для вызова API, который можно выбрать из выпадающего списка после подачи заявки.

Кроме того, установлены тело запроса, включая:

* `queries`: список изображений капчи в кодировке Base64.
* `question`: параметр распознавания, связанный с изображением капчи, поддерживает прямой ввод на китайском и английском языках.

После выбора вы также можете увидеть сгенерированный код справа, как показано на изображении:

<p>
  <img src="https://cdn.xhuoapi.ai/bww9b0.png" width="500" className="m-auto" />
</p>

Нажмите кнопку «Try», чтобы провести тестирование, как показано на изображении выше, и мы получили следующий результат:

```json theme={null}
{
  "solution": {
    "label": "Please click on the UNIQUE object among the others",
    "box": [
      "360",
      "276"
    ],
    "confidences": 0.6354503631591797
  }
}
```

Возвращаемый результат содержит несколько полей, описание которых следующее:

* `solution`, результат проверки после обработки изображения hCaptcha.
  * `label`, распознанное содержимое изображения hCaptcha.
  * `box`, информация о местоположении результата распознавания изображения hCaptcha, которая состоит из координат изображения.
  * `confidences`, степень уверенности в распознавании содержимого изображения hCaptcha.

Как видно, мы получили результат проверки изображения hCaptcha, и нам нужно просто смоделировать клик по области, указанной координатами `box`, чтобы пройти проверку.

Далее будет описано, как кликнуть по координатам `box` результата. Сначала создадим прямоугольную координатную систему для загруженного изображения капчи, где центр находится в левом нижнем углу изображения, 360 — это соответствующая абсцисса, 276 — соответствующая ордината. Нам нужно просто смоделировать клик по соответствующим координатам капчи, как показано на следующем изображении:

<p>
  <img src="https://cdn.xhuoapi.ai/4ykvbl.png" width="500" className="m-auto" />
</p>

Если вы хотите сгенерировать соответствующий код интеграции, вы можете просто скопировать его, например, код CURL будет следующим:

```shell theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/captcha/recognition/hcaptcha' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "question": "Please click on the UNIQUE object among the others.",
  "queries": ["iVBORw0KGgoAAAANSU.....eY+85KVlzKHav28uq/WLVhL2kHUlFMKUcZbL31S8bpd0pEPKxNllXAE2wgu3uEfj+BfAzOGelsQNFAAAAAElFTkSuQmCC"]
}'
```

Код интеграции на Python будет следующим:

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/captcha/recognition/hcaptcha"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "question": "Please click on the UNIQUE object among the others.",
    "queries": ["iVBORw0KGgoAAAANSU.....eY+85KVlzKHav28uq/WLVhL2kHUlFMKUcZbL31S8bpd0pEPKxNllXAE2wgu3uEfj+BfAzOGelsQNFAAAAAElFTkSuQmCC"]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

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

При вызове API, если возникнет ошибка, API вернет соответствующий код ошибки и информацию. Например:

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

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

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Заключение

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