Функція яка повертає всі повідомлення, які користувач надіслав Телеграм боту.
Функція читає повідомлення (запити від користувачів) з каналу Телеграм бота та повертає їх у вигляді таблиці значень. Найкраще розмістити у загальний модуль.
Дані які приймає:Токен - Токен телеграм бота.
ИДСообщения - ІД останнього отриманого повідомлення, потрібно, щоб кожен раз не перечитувати всі повідомлення від користувачів. Якщо значення НЕ порожнє, то читати починає від зазначеного. Краще зберігати десь у константі.
Колонки таблиці значень:ИмяПользователя - Перше ім'я
ФамилияПользователя - Друге ім'я
ИДПользователя - ІД користувача який написав
ИДСообщения - ІД повідомлення
ТекстСообщения - Текст самого повідомлення
ЭтоБот - Істина якщо бот написав замість користувача
Функция ЧтениеСообщенийТелеграм(Токен, ИДСообщения = ""
) Экспорт ИмяФайла = ПолучитьИмяВременногоФайла("txt"
); Подключение = Новый HTTPСоединение("api.telegram.org"
, 443
,,,,, Новый ЗащищенноеСоединениеOpenSSL()); Если ЗначениеЗаполнено(ИДСообщения) Тогда Ограничение = "?offset="
+ Формат(ИДСообщения + 1
, "ЧГ="
); КонецЕсли; Запрос = Новый HTTPЗапрос("/bot"
+ Токен + "/getUpdates"
+ Ограничение); Подключение.Получить(Запрос, ИмяФайла); чтение = Новый ЧтениеJSON; чтение.ОткрытьФайл(ИмяФайла); данные = ПрочитатьJSON(чтение, ложь); Если НЕ данные.ok Тогда Возврат Неопределено; КонецЕсли; ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки("ИмяПользователя"
); ТЗ.Колонки("ФамилияПользователя"
); ТЗ.Колонки("ИДПользователя"
); ТЗ.Колонки("ИДСообщения"
); ТЗ.Колонки("ТекстСообщения"
); ТЗ.Колонки.Добавить("ЭтоБот"
); Для Каждого Сообщение Из данные.result Цикл СтрТЗ = ТЗ.Добавить(); // Если сообщение было отредактировано Если Сообщение.Свойство("edited_message"
) Тогда СтрТЗ.ИмяПользователя = Сообщение.edited_message.from.first_name; СтрТЗ.ФамилияПользователя = Сообщение.edited_message.from.last_name; СтрТЗ.ИДПользователя = Формат(Сообщение.edited_message.from.id, "ЧГ="
); СтрТЗ.ИДСообщения = Сообщение.update_id; СтрТЗ.ТекстСообщения = Сообщение.edited_message.text; СтрТЗ.ЭтоБот = Сообщение.edited_message.from.is_bot; Иначе // Обычное сообщение СтрТЗ.ИмяПользователя = Сообщение.message.from.first_name; СтрТЗ.ФамилияПользователя = Сообщение.message.from.last_name; СтрТЗ.ИДПользователя = Формат(Сообщение.message.from.id, "ЧГ="
); СтрТЗ.ИДСообщения = Сообщение.update_id; СтрТЗ.ТекстСообщения = Сообщение.message.text; СтрТЗ.ЭтоБот = Сообщение.message.from.is_bot; КонецЕсли; КонецЦикла; Возврат ТЗ; КонецФункции
2023-02-05