Справочник API
Сравнение провайдеров

Авторизация Telegram

Telegram поддерживает code (код подтверждения), qrcode (QR-код) и session (импорт сессии). Все три потока используют /v1/accounts и стандартные auth endpoints: /auth/start, /auth/code, /auth/password, /auth/qr/start, /auth/qr/check, /auth/session.

code

Поток с кодом подтверждения: сервер запрашивает код у Telegram, пользователь получает его по SMS или в приложении и отправляет обратно.

  1. 1. POST /v1/accounts с provider=telegram, auth_mode=code и provider_data, содержащим api_id, api_hash и phone.
  2. 2. POST /v1/accounts/{account_id}/auth/start, чтобы Telegram отправил код подтверждения.
  3. 3. Когда пользователь получит код, отправьте POST /v1/accounts/{account_id}/auth/code с этим кодом.
  4. 4. Если у аккаунта включена 2FA, статус ответа станет awaiting_password — отправьте POST /v1/accounts/{account_id}/auth/password с паролем.
  5. 5. После успеха выполните POST /v1/accounts/{account_id}/runtime/start, чтобы вывести аккаунт в онлайн.
  • provider_data.api_idTelegram App ID, полученный на my.telegram.org. Обязателен для всех потоков Telegram.
  • provider_data.api_hashTelegram App Hash, полученный на my.telegram.org. Обязателен для всех потоков Telegram.
  • provider_data.phoneНомер телефона в формате E.164. Требуется только для потока code.

qrcode

Поток с QR-кодом: получите QR-токен и попросите пользователя отсканировать его в приложении Telegram.

  1. 1. POST /v1/accounts с provider=telegram, auth_mode=qrcode и provider_data.api_id / api_hash.
  2. 2. POST /v1/accounts/{account_id}/auth/qr/start — в ответе содержится QR-токен для отображения.
  3. 3. Опрашивайте POST /v1/accounts/{account_id}/auth/qr/check до status=authorized. QR истекает примерно через 30 секунд — обновляйте его, повторно вызывая qr/start.
  4. 4. После успеха выполните POST /v1/accounts/{account_id}/runtime/start.
  • provider_data.api_idTelegram App ID, полученный на my.telegram.org. Обязателен для всех потоков Telegram.
  • provider_data.api_hashTelegram App Hash, полученный на my.telegram.org. Обязателен для всех потоков Telegram.

session

Поток импорта сессии: импортируйте уже авторизованную сессию Telegram в UnifyPort.

  1. 1. POST /v1/accounts с provider=telegram, auth_mode=session.
  2. 2. POST /v1/accounts/{account_id}/auth/session с params.session_url, указывающим на скачиваемый файл .session.
  3. 3. Когда импорт подтверждает валидность сессии, выполните POST /v1/accounts/{account_id}/runtime/start.
  • params.session_urlURL или ссылка на существующую сессию Telegram.

Примечания

  • Пароли 2FA — без состояния на каждую попытку. При ошибке отмените сессию и запустите /auth/qr/start или /auth/start заново.
  • QR-токены истекают через ~30 секунд. Вызовите qr/start ещё раз для обновления — UI должен перерисовывать отображаемый QR.
  • URL webhook внедряется автоматически при конфигурации аккаунта. Переходы состояний авторизации и события входа приходят в тот же webhook, что и входящие сообщения.