Подключения (API v2)
Подключения в API Radist.Online: создание и настройка соединений с Telegram, WhatsApp, MAX, Одноклассниками, VK, Авито и банками, привязка к подписке и примеры авторизации.
Общее
Swagger: https://api.radist.online/v2/docs#/Connections
Необходимые права доступа (scopes) для работы с API: connections
Подключение/connection - сущность, содержащая параметры для соединения с внешним сервисом (telegram/whatsapp/tinkoff/amocrm и т.п.)
Замечания
- Через API нельзя удалить подключения. Для удаления необходимо обратиться в поддержку. Имейте в виду, что при удалении также удаляются связанные сущности. Например, при удалении терминала банка, будут удалены все выставленные счета. При удалении мессенджера, будут удалены все чаты и история переписки.
- Редактирование параметров доступно не для всех типов подключений. Например, подключения AMOCRM/BITRIX управляются полностью на нашей стороне.
- Чтобы подключение работало, оно должно быть в оплаченной подписке.
Примеры
Подключение Telegram
Подключение происходит в несколько шагов:
- Создание сессии для авторизации
- Авторизация
- Ввод пароля двухфакторной авторизации (если есть)
- Создание подключения
Подключение через сканирование QR-кода
- Создаём сессию авторизации https://api.radist.online/v2/docs#/Telegram/TelegramInitializeSession
| |
- Отображаем пользователю QR-код для сканирования
- Периодически (например, раз в 5 секунд) опрашиваем статус сессии: https://api.radist.online/v2/docs#/Telegram/TelegramSendLoginRequest
| |
- Если в ответ снова получили сессию со
status=waiting_for_qrи qr-код изменился, показываем новый код пользователю. - Если в ответ получили сессию со
status=waiting_for_password, то показываем пользователю поле ввода пароля для 2FA. Этого шага может не быть, если 2FA отключена.
| |
- После того, как получили сессию со
status=authenticated, можно создавать подключение: https://api.radist.online/v2/docs#/Connections/ConnectionsCreateConnection
| |
Подключение через код в чате Telegram
- Создаём сессию авторизации https://api.radist.online/v2/docs#/Telegram/TelegramInitializeSession
| |
- Показываем пользователю поле для ввода кода
- Когда получили код, авторизуемся: https://api.radist.online/v2/docs#/Telegram/TelegramSendLoginRequest
| |
- Если в ответ получили сессию со
status=waiting_for_password, то показываем пользователю поле ввода пароля для 2FA. Этого шага может не быть, если 2FA отключена.
| |
- После того, как получили сессию со
status=authenticated, можно создавать подключение: https://api.radist.online/v2/docs#/Connections/ConnectionsCreateConnection
| |
Повторная авторизация
В некоторых случаях может быть необходимо повторить авторизацию. Например, если в приложении Telegram принудительно завершили сессию, которую открыл наш сервис.
Это делается аналогично тому, как происходит первое подключение (см. примеры выше), только при создании сессии для авторизации нужно обязательно передать connection_id и после успешной авторизации не нужно создавать новое подключение.
| |
Подключение Telegram Bot
Подключение
Необходимо создать подключение с типом telegram_bot, передав API ключ от бота: https://api.radist.online/v2/docs#/Connections/ConnectionsCreateConnection
| |
| |
Подключение WhatsApp
Авторизация, подключение
Необходимо создать подключение с типом whatsapp: https://api.radist.online/v2/docs#/Connections/ConnectionsCreateConnection
| |
| |
После создания подключение ещё не авторизовано (last_status.status_subtype = whatsapp_qr_not_scanned). Авторизуйте его методом WhatsAppInitWhatsappLogin — он поддерживает два способа авторизации, выбираемых параметром auth_type: по QR-коду (qr, по умолчанию) или по коду на телефон (phone).
Способ 1 — по QR-коду (auth_type=qr). В ответе возвращается qr_code (data-URI) и срок его действия expires_at. Отобразите QR-код пользователю — он сканирует его в мобильном приложении WhatsApp: Настройки → Связанные устройства → Привязка устройства.
| |
Способ 2 — по коду на телефон (auth_type=phone). Параметр phone обязателен. В ответе возвращается восьмизначный код подтверждения auth_code (в формате XXXX-XXXX) и срок действия expires_at. Покажите auth_code пользователю — он вводит его в приложении WhatsApp при привязке устройства по номеру телефона: Настройки → Связанные устройства → Привязка устройства → Связать по номеру телефона.
| |
В обоих случаях после истечения expires_at вызовите метод повторно, чтобы получить новый код/QR. Если подключение уже авторизовано, метод вернёт 409.
Опрашивайте статус авторизации методом WhatsAppGetWhatsappInstanceStatus (например, раз в 5 секунд), пока не получите status=ok:
| |
status=ok — подключение авторизовано, status=loading — ожидаем подтверждения кода/QR или запуск инстанса. QR-код и код подтверждения этот метод не возвращает — для их получения используйте login.
Для переподключения повторно вызовите login и заново отсканируйте QR-код или введите код.
Подключение MAX
Первое подключение
- Создаём сессию авторизации:
https://api.radist.online/v2/docs#/Max%20personal/Max%20personalInitializeSession
| |
- Показываем пользователю поле для ввода кода
- Когда получили код, авторизуемся:
https://api.radist.online/v2/docs#/Max%20personal/Max%20personalSendLoginRequest
| |
- После того, как получили сессию со
status=authenticated, можно создавать подключение: https://api.radist.online/v2/docs#/Connections/ConnectionsCreateConnection
| |
Подключение MAX Bot
Подключение
Необходимо создать подключение с типом max_bot, передав токен бота: https://api.radist.online/v2/docs#/Connections/ConnectionsCreateConnection
| |
Подключение Одноклассников
Первое подключение
Необходимо создать подключение с типом odnoklassniki, передав API ключ от группы: https://api.radist.online/v2/docs#/Connections/ConnectionsCreateConnection
| |
| |
Изменение API-ключа
Необходимость изменить API-ключ может возникнуть по разным причинам:
- В настройках группы сбросили ключ
- Ключ давно не использовался и стал неактивен
Для его обновления можно использовать метод: https://api.radist.online/v2/docs#/Connections/ConnectionsUpdateConnection
Подключение VK (группа)
Первое подключение
Необходимо создать подключение с типом vk_group, передав ключ доступа сообщества (Настройки сообщества → Работа с API → Ключи доступа, права messages): https://api.radist.online/v2/docs#/Connections/ConnectionsCreateConnection
| |
Подключение VK (Direct, личный аккаунт)
Авторизация происходит через QR-код (аналогично Telegram), с дополнительным шагом валидации, если VK посчитает вход подозрительным.
Первое подключение
- Создаём сессию авторизации и получаем QR-код: https://api.radist.online/v2/docs#/VK%20Direct/VK%20DirectInitializeSession
| |
- Отображаем пользователю QR-код для сканирования в мобильном приложении VK
- Периодически (например, раз в 2-3 секунды) опрашиваем статус сессии: https://api.radist.online/v2/docs#/VK%20Direct/VK%20DirectPollLogin
| |
- Пока пользователь не отсканировал код,
statusостаётсяwaiting_for_qr_scan. Если сессия протухла, отменена или недействительна, придётstatus=need_refresh_qr— нужно заново вызвать/vk_direct/init. - Если VK посчитал вход подозрительным, придёт
status=need_validation_code. Запросите у пользователя код подтверждения и повторите/vk_direct/login, дополнительно передавvalidation_code:
| |
- Когда пользователь подтвердил вход в мобильном приложении,
statusстанетauthenticated:
| |
- После этого можно создавать подключение, передав тот же
session_id: https://api.radist.online/v2/docs#/Connections/ConnectionsCreateConnection
| |
Повторная авторизация
Аналогично Telegram: при вызове /vk_direct/init передайте connection_id уже существующего подключения — сессия будет привязана к тому же устройству (device_id), и повторно создавать подключение после успешной авторизации не нужно.
| |
Подключение Авито
В отличие от остальных мессенджеров, Авито подключается через OAuth — создать подключение одним запросом нельзя, нужен переход пользователя на страницу авторизации Авито.
Подключение
- Получаем ссылку для авторизации: https://api.radist.online/v2/docs#/Avito/AvitoGetAvitoAuthUrl
| |
- Открываем
auth_urlв браузере пользователя (например, во всплывающем окне). Пользователь авторизуется и разрешает доступ на стороне Авито. - Авито перенаправляет пользователя на наш callback-адрес — он не является частью публичного API и вызывается только со стороны Авито. После успешной авторизации подключение с типом
avitoсоздаётся автоматически, без дополнительных запросов с вашей стороны. - Дождитесь появления нового подключения (например, опросив список подключений) или подпишитесь на вебхук
connections.status_changed.