Андрей Ефименко написал(а):
Есть вопрос - что такое официальный телеграм-бот ?
Программное обеспечение ДК "Обь" устанавливается на клиентский компьютер и функционирует независимо.
Поэтому, как мне кажется, программная поддержка бота должна быть включена в каждую установку ПО.
Пусть бот будет реализован внутри LKDSDomain.
Можно представить себе два варианта:
1. внутри LKDSDomain поддерживается один бот. Для данной установки ПО, самим клиентом, использующим ПО ДК "Обь", заводится бот с уникальным именем и его токен (идентификатор) сообщается LKDSDomain.
В этом варианте, при начале чата с ботом, нужно сообщить свои параметры в LKDSDomain - имя организации, своё имя и пароль. После чего LKDSDomain будет отправлять в чат оповещения, такие же, что и через SMS, email, PUSH, HTTP.
2. внутри LKDSDomain поддерживается несколько ботов, в пределе - для каждого пользователя LKDSDomain. В этом варианте, при начале чата с ботом, уже не нужно сообщить свои параметры, т.к. они уже известны. Все боты заводит сам клиент, использующий ПО ДК "Обь", а токен бота вводится в параметры пользователя, как, например, email пользователя.
Что такое официальный телеграм-бот ?
Итак. В телеграм (как и во многих других мессенджерах, социальных сетях и т.д.) принято подтверждать те аккаунты, боты и пр., создатели которых, прошли процедуру верификации площадкой, на которой они размещены, специальным признаком (обычно отметкой в виде флаговой кнопки, "галочки"). Делается это с целью лёгкого определения авторства. То есть, например, если я создам своими силами и средствами такой бот, он не сможет считаться официальным решением, ввиду несогласованности с вами такого решения и площадкой таковым признан не сможет. А созданный вашими силами бот - может. Поэтому слово "официальный" прошу понимать исключительно в этом контексте. По сути, мне всё равно будет ли он считаться "официальным". Я с лёгкостью сверюсь по точному названию, опубликованному вами, но в перспективе, это послужит подспорьем в возможной борьбе с недоброжелателями, которые могут захотеть притворится официальным решением для своих корыстных целей (например определения вектора хакерской атаки на инфраструктуру, перехвата данных и т.д.). Мне, как и уверен многим другим вашим пользователям, важен только результат.
Теперь по существу. Тут нужен другой способ аутентификации. Заводить под каждый сервер, бота с уникальным именем не стоит. Я себе это представляю таким образом:
- создаётся бот с одним уникальным именем @LKDSAllertsBot (для примера), работающий на вашей инфраструктуре;
- в LKDSDomain или LKDSCloud конкретному пользователю, загодя присваивается уникальный ID (можно в момент установки соответствующего чекбокса в настройках профиля, например: "Оповещения в Telegram", чтобы всем сразу не генерировать.
Например:
A6w6pGM7RrV87sR84273o2AjR096jk
- когда мы, как пользователь, впервые обращаемся к боту, инициируем процедуру аутентификации, бот запрашивает:
-- IP-адрес сервера (в случае с LKDSDomain)
-- название организации
-- имя пользователя
-- ID
- бот запрашивает эти данные у сервера
- сервер сообщает что такой пользователь есть, все данные совпадают, иначе запрос на повтор
- если всё совпало - связка готова, бот сообщает об успешной привязке
- далее бот переходит в режим передачи сообщений от сервера, в наш с ним чат
(тут хотелось бы загодя предусмотреть механизм слияния, чтобы одномоментно не сыпалась куча сообщений от бота)
Если название объекта, время события, совпадает с предыдущим, можно их объединить. Что я имею ввиду? - Чтобы сообщения бота не выглядели так:
[ 21/05/2022 - 07:00:00 "Зелинского 33, 1 подъезд"
- Аварийная блокировка ]
[ 21/05/2022 - 07:00:00 "Зелинского 33, 1 подъезд"
- Авария главного привода по УКСЛ ]
[ 21/05/2022 - 07:00:00 "Зелинского 33, 1 подъезд"
- Вызов диспетчера из кабины ]
[ 21/05/2022 - 07:00:00 "Зелинского 33, 1 подъезд"
- Отсутствует напряжение в цепи управления ]
А выглядели так:
[ 21/05/2022 - 07:00:00 "Зелинского 33, 1 подъезд"
- Аварийная блокировка
- Авария главного привода по УКСЛ
- Вызов диспетчера из кабины
- Отсутствует напряжение в цепи управления ]
Можно даже с допуском в ~3 сек.