WSS авторизация Telegram Tdlib

Необходимо осуществить коннект к веб-сокету:



wss://api.pushsms.ru/socket/websocket?token=токен_клиента&vsn=2.0.0
Обратите внимание, что адрес отличается от используемого при авторизации WhatsApp

При удачном коннекте сервис возвращает сообщение:

Connected to wss://api.pushsms.ru/socket/websocket?token=токен_клиента&vsn=2.0.0&vsn=2.0.0
Подключение к каналу
Для подключения необходимо:

* быть авторизованным, то есть первоначальный коннект с верным токеном

ID клиента можно получить из JWT токена. Пример работы получения данных из JWT токена можно посмотреть тут https://jwt.io/

Для получений событий необходимо отправить следующую команду по WSS протоколу:

["1","1","room:v1:telegram:auth","phx_join",{}]
– "1","1" Первые два параметра могут быть любыми, необходимы для обеспечения идемпотентности, если это необходимо клиенту

– ключ подключения room:v1:telegram:auth

– phx_join команда на подключение

– {} дополнительные параметры, можно оставить пустыми

* v1 — скоуп присваивается каждой CRM и сервису индивидуально, запросите свое персональное значение v1 и используйте в коде его, отправляя запросы.

После подключения к каналу каждые n секунд клиенту будет передаваться текущее состояние авторизации в виде:


["1",null,"room:v1:telegram:auth","auth_state",{"status":"статус_авторизации"}]
Статусы авторизации
Отправка номера телефона

Запрос

["1","1","room:v1:telegram:auth","send_phone",{"phone": "номер_телефона_клиента"}]
Успешный ответ:

["1","1","room:v1:telegram:auth","phx_reply",{"response":{},"status":"ok"}]
Ответ при невалидном номере телефона:

[
  "1",
  "1",
  "room:v1:telegram:auth",
  "phx_reply",
  {
    "response": {
      "meta": {
        "code": 422,
        "errors": { "base": ["invalid phone"] },
        "message": "Unprocessable Entity",
        "status": "fail",
        "status_id": null
      }
    },
    "status": "error"
  }
]
Отправка кода подтверждения
Запрос:

["1","1","room:v1:telegram:auth","send_code",{"code": "ваш_код_подтверждения"}]
Успешный ответ:

["1","1","room:v1:telegram:auth","phx_reply",{"response":{},"status":"ok"}]
Отправка пароля
Запрос

["1","1","room:v1:telegram:auth","send_password",{"password": "ваш_пароль"}]
Успешный ответ:

["1","1","room:v1:telegram:auth","phx_reply",{"response":{},"status":"ok"}]
Сброс авторизации

Запрос

["1","1","room:v1:telegram:auth","reset",{}]
Успешный ответ:

["1","1","room:v1:telegram:auth","phx_reply",{"response":{},"status":"ok"}]