01.1.4 Telegram¶
| Версия | 1.0.0 |
|---|---|
| Количество листов |
Оглавление¶
История изменений¶
| № | Дата: | Автор: | RFC: | Версия: |
|---|---|---|---|---|
1. Telegram¶
Мессенджер Telegram используется для организации системы уведомлений, о событиях происходящих в сервисе.
Интеграция с сервисом осуществляется на основе API документации сервиса.
1_1 Переменные окружения
| Переменная окружения | Описание |
|---|---|
| TELEGRAM_BOT_TOKEN | Токен бота для создания сообщений. |
| TELEGRAM_CHAT_ID | Идентификатор чата в котором должны создаваться сообщения. |
1.1 Очередь отправки сообщений в Телеграм¶
Очередь предназначена для отправки сообщений в Телеграм.
Очередь состоит из:
- Брокера сообщений который предназначен для хранения информации о сообщение которое должно быть отправлено.
- Обработчика сообщений.
Повторная отправка сообщения очереди
Если сообщение не было обработано Обработчиком сообщений, должна выполняться повторная отправка сообщения Обработчику сообщений согласно настройкам повторной отправки сообщений.
Настройки повторной отправки сообщений
| Настройка | Значение | Описание |
|---|---|---|
| Первоначальная отсрочка | 300000 | Первоначальная отсрочка отправки сообщения в миллисекундах. |
| Количество попыток | 5 | Количество повторных попыток отправки сообщения |
| Множитель отсрочки | 1 |
1.1_1 Параметры сообщения “Telegram message”
| Название | Ключ | Значение |
|---|---|---|
| Текст сообщения | text | Значение определяется произошедшим событием. |
01.1.4_1.1_1 Процедура отправки сообщения в Телеграм¶
- Наступает время обработки сообщения, брокер отправляет сообщение обработчику сообщений.
- Обработчик получает сообщение “Telegram message”.
- Выполняется логирование события с Payload:
- event - "received";
- title - “Telegram message”;
- data.text - Текст сообщения, который был получен в сообщении для которого была инициирована данная процедура.
- Выполняется запрос sendMessage к сервису “Телеграм” с параметрами:
- “chat_id” - согласно переменной окружения TELEGRAM_CHAT_ID:
- “text” - согласно значению ключа “text” сообщения “Telegram message”.
- Если запрос sendMessage к сервису “Телеграм” выполнен не успешно:
- Выполняется логирование события с Payload:
- title - “Telegram message”;
- error - “The request returned an error”;
- data.text - Текст сообщения, который был получен в сообщении для которого была инициирована данная процедура.
- Брокеру сообщений не возвращается информация о том что сообщение было обработано;
- Если сообщение “Telegram message” удаляется из очереди:
- Выполняется создание “Уведомления” с параметрами:
- Дата создания - согласно текущей дате;
- email - team@rippla.com;
- Тип - email;
- Идентификатор динамического шаблона - 15;
- Параметры уведомления:
- “environment” - определяется как строка, согласно окружению в котором выполняется процедура. Возможно одно из следующих значений:
- DEVELOPMENT;
- STAGE;
- PRODUCTION.
- “emailBody” : согласно 01.1.4_1.1_1.1;
- Статус - “new”.
- В очередь “Отправка email-уведомлений через сервис Sendgrid” добавляется сообщение “Email-уведомление” с параметрами:
- Идентификатор уведомления - идентификатор уведомления которое было создано на этапе “5_a_iii_1” данной процедуры.
- Выполняется создание “Уведомления” с параметрами:
- Выполняется логирование события с Payload:
- Если запрос sendMessage к сервису “Телеграм” выполнен успешно брокеру сообщений возвращается информация о том что сообщение было обработано.
01.1.4_1.1_1.1 Определение параметра уведомления emailBody
Параметр уведомления “emailBody” формируется как строка в формате HTML.
Пример:
\<p>‼️There was a problem when sending a Telegram message, please inform the technical support.\</p>