Введение
В этом материале мы продолжим работу с Telegram API, рассматривая более продвинутые сценарии интеграции с 1С. Мы покажем, как:
- Передавать файлы и изображения в Telegram‑бота и сохранять их в 1С;
- Публиковать сообщения в канал Telegram из 1С, добавляя реакции;
- Создавать интерактивный квиз в боте Telegram.
Передача файлов и картинок в Telegram‑бота
Для отправки файлов в Telegram‑бота из 1С необходимо использовать метод sendDocument или sendPhoto Telegram Bot API. В 1С это реализуется через HTTP‑запросы к эндпоинту https://api.telegram.org/bot<TOKEN>/sendDocument (или sendPhoto). Пример кода (1С):
Запрос = Новый HTTPЗапрос("https://api.telegram.org/bot<TOKEN>/sendDocument");
Запрос.УстановитьЗаголовок("Content-Type", "multipart/form-data");
Запрос.ДобавитьПараметр("chat_id", <CHAT_ID>);
Запрос.ДобавитьПараметр("document", Новый HTTPФайл("путь\к\файлу.pdf"));
Ответ = HTTPКлиент.Выполнить(Запрос);
После успешной отправки файл сохраняется в Telegram, а его file_id можно сохранить в 1С для дальнейшего использования.
Публикация сообщений в канал Telegram из 1С с реакциями
Для публикации в канал используется метод sendMessage с параметром chat_id, указывающим на канал. Чтобы добавить реакции, сначала нужно получить message_id опубликованного сообщения, а затем вызвать метод setChatMessageReaction (доступен в новых версиях API). Пример:
Запрос = Новый HTTPЗапрос("https://api.telegram.org/bot<TOKEN>/sendMessage");
Запрос.УстановитьЗаголовок("Content-Type", "application/json");
Запрос.ДобавитьПараметр("chat_id", <CHANNEL_ID>);
Запрос.ДобавитьПараметр("text", "Привет, канал!");
Ответ = HTTPКлиент.Выполнить(Запрос);
MessageID = Ответ.ПолучитьJSON()["result"]["message_id"];
ЗапросРеакция = Новый HTTPЗапрос("https://api.telegram.org/bot<TOKEN>/setChatMessageReaction");
ЗапросРеакция.УстановитьЗаголовок("Content-Type", "application/json");
ЗапросРеакция.ДобавитьПараметр("chat_id", <CHANNEL_ID>);
ЗапросРеакция.ДобавитьПараметр("message_id", MessageID);
ЗапросРеакция.ДобавитьПараметр("reaction", "👍");
HTTPКлиент.Выполнить(ЗапросРеакция);
Создание квиза в Telegram‑боте
Квизы реализуются через тип сообщения quiz, который поддерживает варианты ответов и проверку правильного ответа. В 1С можно формировать JSON‑объект с полями question, options и correct_option_id, а затем отправлять его методом sendPoll с параметром type=quiz:
Запрос = Новый HTTPЗапрос("https://api.telegram.org/bot<TOKEN>/sendPoll");
Запрос.УстановитьЗаголовок("Content-Type", "application/json");
Запрос.ДобавитьПараметр("chat_id", <CHAT_ID>);
Запрос.ДобавитьПараметр("question", "Кто написал «Войну и мир»?");
Запрос.ДобавитьПараметр("options", ["Лев Толстой", "Фёдор Достоевский", "Александр Пушкин"]);
Запрос.ДобавитьПараметр("type", "quiz");
Запрос.ДобавитьПараметр("correct_option_id", 0);
Ответ = HTTPКлиент.Выполнить(Запрос);
После публикации бот автоматически покажет варианты ответов, а пользователь сможет выбрать один. Telegram проверит правильность и отправит результат в чат.
Где подробнее
Если вы хотите изучить все детали с нуля, приглашаю на полное занятие по интеграции 1С и Telegram:
https://nizamov.school/courses/integration1s/telegram1s?utm_source=telegram
Видео‑презентация
Смотрите полное видео‑объяснение на YouTube:
Выводы
Telegram API предоставляет мощные возможности для взаимодействия с 1С: от простых файлов до интерактивных квизов. Используйте приведенные примеры как основу для собственных проектов и расширяйте функциональность по мере необходимости.