Связка 1С и Telegram. Отправка стикеров

31.07.18

Интеграция - Мессенджеры и боты

В качестве факультатива сейчас изучаю возможности связки 1С и мессенджера Telegram. И возник вопрос, как помимо сообщений, посылать в ответ на действия пользователя произвольный стикер? Решению этой мини задачи и посвящена данная статья.

Скачать исходный код

Наименование Файл Версия Размер
Пример отправки стикеров из 1С в Telegram
.epf 7,34Kb
8
.epf 7,34Kb 8 Скачать

На Infostart`е множество статей по интеграции 1С и мессенджера Telegram. В них описано как отправить пользователю сообщения/кнопки/файлы, но нигде нет примера по отправке стикера.

Немного оживим задачу:

Пусть у нас существует бот, который оповещает пользователей о необходимости согласовать документ, т.е. в момент поступления документа на согласование пользователю приходит сообщение следующего вида: "Прошу согласовать документ заявка на расход 1 от 15.07.208 на сумму 100 руб." с двумя кнопками (клавиатура типа "inline_keyboard") "Согласовать" и "Не согласовать". По нажатию на кнопку "Согласовать" пользователю должно приходить сообщение "Спасибо, документ успешно согласован!" и посылаться произвольный стикер.

Вот как это должно выглядеть на практике:

Покопавшись в Telegram Api (https://core.telegram.org/bots/api), было обнаружено, что для отправки стикера существует метод "/sendSticker":

Получается, чтобы отправить стикер нужно знать chat_id и sticker, первый параметр это идентификатор чата нашего бота с конкретным пользователем, а второй это адрес стикера на сервере telegram. Чтобы получить эти параметры нужно один раз послать необходимые нам стикеры нашему боту.

Затем создать обработку и выполнить в ней следующий код по чтению этих сообщений:

&НаКлиенте
Процедура ПолучитьИдентификаторы(Команда)
	
	Идентификаторы.Очистить();
	
	Соединение  =  Новый HTTPСоединение("api.telegram.org",443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
	
	//Запрос обновлений сообщений
	ТекстЗапросаHTTP = "bot" + ТокенБота + "/getUpdates";
	Запрос = Новый HTTPЗапрос(ТекстЗапросаHTTP);
	
	Ответ = Соединение.Получить(Запрос);
	ТекстОтвета = Ответ.ПолучитьТелоКакСтроку();
	
	//Чтение ответа
	ЧтениеJSON = Новый ЧтениеJSON();       	
	ЧтениеJSON.УстановитьСтроку(ТекстОтвета);
	
	Результат = ПрочитатьJSON(ЧтениеJSON);
	
	ЧтениеJSON.Закрыть();
	
	МассивСообщений = Результат.result;
	
	Для каждого СтруктураСообщения из МассивСообщений Цикл
		
		Сообщение = СтруктураСообщения.message;
	
		Если Сообщение.Свойство("sticker") Тогда 
			
			ИдентификаторЧата = Формат(Сообщение.chat.id, "ЧГ=");
			
			//Строка ИД чата
			НоваяСтрокаИдентификатора = Идентификаторы.Добавить();
			
			НоваяСтрокаИдентификатора.ИмяПользователя = Сообщение.from.first_name + " " + Сообщение.from.last_name;
			НоваяСтрокаИдентификатора.ИдентификаторЧата = ИдентификаторЧата;
			
			Стикер = Сообщение.sticker;
			
			НоваяСтрокаИдентификатора.Стикер = Стикер.emoji;
			НоваяСтрокаИдентификатора.АдресСтикера = Стикер.file_id;
			
		КонецЕсли;
				
	КонецЦикла;
	
КонецПроцедуры

В ответ на http запрос telegram вернет нам JSON массив следующего формата (адрес стикера это его file_id):

Получив адрес стикера, можно легко его отправить, используя следующий код:

&НаКлиенте
Процедура ОтправитьСтикерПользователю(АдресСтикера, ИдентификаторЧата)
	
	Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); 

	//Параметры запроса
	ПараметрыЗапроса = "?chat_id=" + Формат(ИдентификаторЧата, "ЧГ=0") + "&sticker=" + АдресСтикера;
	ТекстЗапросаHTTP = "bot" + ТокенБота + "/sendSticker" + ПараметрыЗапроса;
		
	Запрос = Новый HTTPЗапрос(ТекстЗапросаHTTP);
	Запрос.УстановитьТелоИзСтроки(ПараметрыЗапроса);
	
	Ответ = Соединение.ОтправитьДляОбработки(Запрос);
		
КонецПроцедуры

Для удобства получения параметров chat_id и sticker была создана обработка по их получению и отправки стикеров:

Обработка находится во вложении к данной публикации, однако весь её код приведен выше.

Обработка тестировалась на конфигурации "Бухгалтерия предприятия, редакция 3.0 (3.0.63.20)", но она также будет работать на любой конфигурации на управляемых формах

См. также

SALE! 25%

Конструктор ботов Телеграм, редакция 2

Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Развитие популярного решения для интеграции мессенджера Telegram с нашей любимой 1С.

15000 11250 руб.

18.06.2021    59440    295    255    

349

SALE! 25%

Что нам стоит бота построить? Нарисуем - будет жить! Графический конструктор телеграм-ботов/Telegram

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 9900 руб.

27.12.2021    33809    82    159    

177

Легкий документооборот (+чат-бот для Telegram)

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в конфигурациях "1С: Бухгалтерия 3.0", "Управление нашей фирмой", "1С ERP Управление предприятием", "Бухгалтерия государственного учреждения". Ролевая адресация, условная маршрутизация, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    28016    26    48    

58

Email, SMS, Telegram рассылки из 1С - Директ Маркетинг

Управление взаимоотношениями с клиентами (CRM) Мессенджеры и боты SMS рассылки Email рассылки Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Полный набор инструментов для качественных транзакционных и маркетинговых Email, SMS, Telegram рассылок из 1С. Даже простые уведомления об оплате счетов способны существенно упростить сбор дебиторской задолженности. Применение всех возможностей прямого маркетинга выводит коммуникацию с клиентами, уровень сервиса и лояльность на новый уровень.

7788 руб.

07.04.2014    83877    41    191    

127

Интеграция 1С с телефонией и чатами WhatsApp и Telegram

Телефония, SIP Мессенджеры и боты Платформа 1С v8.3 Конфигурации 1cv8 Россия Управленческий учет Платные (руб)

Интеграция 1С с телефонией и чатами WhatsApp и Telegram автоматизирует работу оператора со звонками и чатами и добавит вашей 1С элементы CRM системы. Храните всю историю взаимоотношений в 1С, не теряйте звонки, скачивайте, прослушивайте в любое время из карточки клиента или журнала звонков, держите руку на пульсе, используя блок отчетов по звонкам. Интегрируйте вашу 1С и чатами WhatsApp и Telegram, общайтесь с клиентами с единого номера и в одном окне. Теперь чаты с клиентами хранятся в карточке партнера в 1С, а не в личных мобильных ваших менеджеров.

4100 руб.

28.04.2022    14079    11    8    

36

Отправка в Telegram отчетов, печатных форм, присоединённых файлов и произвольных вложений. Загрузка получателей. Хранение истории отправок.

Мессенджеры и боты Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Платные (руб)

Универсальное расширение для отправки (напрямую и через прокси) печатных форм, отчетов, присоединённых файлов, табличных документов и произвольных вложений в чат Telegram прямо из 1С. Ручная и автоматическая фоновая загрузка по расписанию идентификаторов получателей Telegram. Хранение истории отправок сообщений с ограничением по времени хранения и с автоматической очисткой по мере истечения срока хранения.

4800 руб.

26.12.2023    2353    2    0    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Aspirant 4 02.08.18 12:58 Сейчас в теме
HTTPСоединение("api.telegram.org"

"api.telegram.org" - этот адрес точно работает?
2. Skin123 189 02.08.18 15:13 Сейчас в теме
(1) Должен работать, если Ваш провайдер не заблокировал его по требованиям РКН
3. stako8 18.01.19 08:22 Сейчас в теме
Может кто сталкивался: отправляю клавиатуру "bot******/sendMessage?chat_id=******&text=Меню&reply_markup={"inline_keyboard":[[{"text":"1","callback_data":"1"},{"text":"2","callback_data":"2"}]]}", она приходит пользователю, тот нажимает на не, но через "getUpdates" не приходит ответ что он нажал. Куда копать?
4. serg-lom89 76 25.07.19 14:49 Сейчас в теме
(3)в ответ когда будете дергать getUpdates там должно быть поле
callback_data что такое и там будет индентификатор вашего callback_data (1 или 2)
5. simuljakr 203 09.05.21 12:03 Сейчас в теме
А можно ли отправить одним сообщением и стикер и текст?
Оставьте свое сообщение