Соединение с ботом
Схема соединения бота с экземпляром SimpleOne:
- Для создания Telegram-бота, администратор системы отправляет команду в Telegram @BotFather. После успешного создания бота, генерируется токен бота.
- Администратор создает заранее конечную точку в таблице Действия API. При подключении экземпляра SimpleOne к боту на соответствующей странице используется сгенерированный ранее токен бота и задается конечная точка.
- После сохранения, отправляется запрос в Telegram-бот с методом setWebhook для установки соединения. В запросе передается URL конечной точки.
Аутентификация пользователей
Алгоритм подключения пользователей к Telegram-боту выглядит следующим образом:
- Пользователь пишет Telegram-боту, на конечную точку приходит запрос.
Пример тела ответа
{"update_id":301617650,
"message":{
"message_id":34235,
"from":{
"id":1344171102,
"is_bot":false,
"first_name":"John",
"last_name":"Doe",
"username":"john.doe",
"language_code":"en"
},
"chat":{
"id":1322171102,
"first_name":"John",
"last_name":"Doe",
"username":"john.doe",
"type":"private"
},
"date":1676130018,
"text":start"
}
}
- По ID чата на экземпляре проверяется наличие записи с привязкой пользователя и чата в таблице Связи чатов Telegram и пользователей (itsm_telegram_chat_bindings_with_users) table.
- Если соответсвующая запись есть, то бот работает дальше по скрипту.
- Если записи нет, то в Telegram появляется кнопка Share your phone number, после нажатия на которую на конечную точку приходит запрос с ключом contact и phone_number По номеру телефона в базе данных находится запись пользователя, после создается запись в таблице Связи чатов Telegram и пользователей (itsm_telegram_chat_bindings_with_users).
примечание
Если на экземпляре не удалось найти пользователя по номеру телефона, указанному в Telegram, бот выдаст следующее сообщение:
Номер не зарегистрирован в системе. Авторизуйтесь с другого номера или свяжитесь со службой поддержки {почта поддержки}
Если учетная запись пользователя неактивна или заблокирована, бот выдаст следующее сообщение:
Учетная запись не активна. Свяжитесь со службой поддержки {почта поддержки}