Перейти к содержимому
FidmosДокументация

Вход через Telegram

Кроме кода из письма, человек может войти через Telegram. Эта страница описывает, что происходит внутри окна Fidmos, когда выбран этот способ: какие запросы уходят и какие бывают ошибки.

  1. Человек подтверждает вход в Telegram. Окно открывает виджет Telegram; после подтверждения оно шлёт данные Telegram на проверку — POST /api/v1/embed/telegram:

    POSThttps://id.fidmos.com/api/v1/embed/telegram
    Content-Type: application/json
    
    { "flow_id": "...", "id": 12345678, "auth_date": 1717000000, "hash": "...",
      "first_name": "Иван", "username": "ivan" }

    Сервер проверяет подпись данных (hash) секретом бота. Не сошлось — telegram_invalid.

  2. Личность связывается с пользователем. Если этот Telegram уже привязан к пользователю, поток готов к завершению:

    { "status": "authenticated", "completion_handle": "..." }

    Если Telegram ещё ни к кому не привязан, окно получает identity_unlinked и заводит нового пользователя — POST /api/v1/embed/identity/create с тем же flow_id:

    { "status": "authenticated", "completion_handle": "..." }
  3. Окно завершает вход — меняет completion_handle на код авторизации (POST /api/v1/embed/complete) и отдаёт его вашей странице через onSuccess. Дальше — обычный обмен кода на токен.

Все ответы с ошибкой — в конверте { "error": "<код>" }. Значения кодов и общий разбор — в справочнике ошибок.

Код Когда
telegram_invalid данные Telegram не прошли проверку подписи
no_pending_identity нет отложенного способа входа для создания пользователя
identity_taken этот Telegram успели привязать к другому пользователю
invalid_completion завершение потока не удалось (HTTP 409)
authorization_failed окно не смогло выпустить код авторизации
flow_expired поток не найден или истёк
parent_origin_mismatch запрос пришёл с чужого источника