API V2
На этой странице представлена документация HTTP API V2 для использования visionbot.ru.
Содержание:
Получение доступных языков
Получить список всех доступных языков:
Адрес: https://visionbot.ru/apiv2/get_languages.php
Метод: GET
Параметры: нет.
В ответе будет JSON с полем languages
, с массивом из двух буквенного обозначения языков.
Пример ответа:
{"languages":["af","am","zh"]}
Распознавание изображений
Параметры, такие как id, lang, target, qr, bm, translate, url можно передавать как GET, так и POST,
Для остальных рекомендован POST.
Для начала распознавания нужно загрузить изображение
на адрес: https://visionbot.ru/apiv2/in.php
одним способом из трёх:
- поле
file
методmultipart/form-data
- поле
body
с закодированным base64 содержимым изображения методом
application/x-www-form-urlencode; charset=utf-8
- поле
url
с прямой ссылкой на изображение
и передать дополнительные параметры:
- lang - STRING - язык по стандарту ISO 639-1, на данный момент поддерживается 95 языков (используется Яндекс Переводчик)
поумолчанию en
Примеры: ru, ua, be, uz, es, fr, pt - target - STRING - что распознавать
- all (поумолчанию) всё
- text только текст
- images только образы
- nothing ничего из этого не распознавать, полезно при
bm=1
- qr - INTEGER - читать QR/BAR коды? 0 нет (поумолчанию), 1 да
- bm - INTEGER - использовать ли Be My AI для распознавания? 0 нет (поумолчанию), 1 да
- translate - INTEGER - Переводить распознанный текст? 0 нет (поумолчанию), 1 да
В ответе вы получите JSON с двумя полями:
- status - STRING - ok или error
- id - STRING - ID для следующего запроса и получения результата
Для получения результата необходимо отправить запрос на адрес: https://visionbot.ru/apiv2/res.php
и передать параметр id из предыдущего запроса.
В ответе будет JSON с полями:
- status - STRING - ok, notready или error. Если notready, повторите этот же запрос через несколько секунд
- id - STRING - ID запроса (действителен один час или 3600 секунд)
- text - STRING - результат распознавания
- qr - STRING - QR/BAR код, поле возвращается только если запрашивалось, может быть пустой строкой, если его нет
Работа с Be My AI
Адрес: https://visionbot.ru/apiv2/bm.php
Не обязательный параметр lang
(STRING)
, по умолчанию английский. Примеры значений: en
, fr
. На каком языке будет отвечать система и, допустим, при регистрации на каком языке будет отправлено письмо подтверждения.
GET или POST - выбирайте сами.
Параметры для входа в аккаунт: action=login
, email=?
, password=?
. Подставляете свои значения.
Ответ в JSON: status =(STRING) ok, bmtoken = (string) a set of unique numbers and letters, name = (STRING) first name and surname. Вам нужно сохранить токен.
Параметры для регистрации аккаунта: action=signup
, first_name=?
, last_name=?
, email=?
, password=?
. Подставляете свои значения.
Ответ в JSON: status =(STRING) ok, bmtoken = (string) a set of unique numbers and letters, name = (STRING) first name and surname. Вам нужно сохранить токен.
Если ошибка, то статус error
и в поле text
будет текст ошибки.
Восстановить забытый пароль: action=reset_password
, email=?
Сервис ничего не возвращает, даже если email указан не верно, поэтому просто смотрите status ok
Проверить авторизацию, узнать имя и почту: action=refresh
, bmtoken=?
Ответ: JSON поля status
, bmtoken
и text
. В тексте на первой строке имя и фамилия, во второй (через \n
) email. И status
. Если ошибка, то в поле text
будет пояснение / ответ от сервиса.
Задать вопрос: проходите авторизацию в аккаунте и используйте токен.
Если токен уже есть, ещё раз авторизацию проходить не надо. Используйте этот токен, который у вас есть.
Распознаёте картинку, передав на in.php
параметр bm=1
и bmtoken
.
Ждёте и получаете ответ. В ответе от res.php
также будет поле bm_chat_id
(INTEGER), сохраните его.
А теперь уже отправляем запрос на адрес: bm.php
. Параметры: bmtoken=?
, bm_chat_id=?
, message=?
Заполняете и отправляете. message
, разумеется, ваше сообщение.
Сохраняете id
из ответа.
Теперь каждые, скажем, 3 секунды опрашиваем res.php
, но параметры уже будут другие:
ask=1
(INTEGER)
, id=?
(STRING)
id
берём из ответа на предыдущий запрос.
Ждём, когда status
будет ok
и забираем текст ответа из параметра text
.