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

31.07.18

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Пример отправки стикеров из 1С в Telegram
.epf 7,34Kb
11
11 Скачать (1 SM) Купить за 1 850 руб.

На 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)", но она также будет работать на любой конфигурации на управляемых формах

См. также

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

Интеграция мессенджера WhatsApp и 1С: УНФ, УТ, КА, ERP - отправка и получение сообщений, картинок, файлов и видео прямо в 1С. Расширение работает с сервисом GreenApi.

15600 руб.

23.06.2023    9763    60    13    

36

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

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

13200 руб.

27.12.2021    38463    109    163    

203

SALE! 25%

Мессенджеры и боты Системный администратор Программист Бизнес-аналитик Пользователь Руководитель проекта Платформа 1С v8.3 Платные (руб)

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

15000 11250 руб.

18.06.2021    65828    312    272    

369

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

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

14900 руб.

15.11.2018    30409    35    49    

71

Мессенджеры и боты Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Данное расширение представляет собой интерфейс взаимодействия 1С с сервисом Wazzup. Данный сервис позволяет вести беседу с использованием номера телефона, привязанного к Whatsapp. Почитать о сервисе и его условиях использования можно по ссылке https://wazzup24.com/. На данный момент расширение поддерживает почти все доступные через API функции. Обновление от 19.05.2023, версия 2.1!

14400 руб.

30.11.2020    13696    8    13    

15

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

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

4100 руб.

28.04.2022    16034    16    10    

41
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 Сейчас в теме
А можно ли отправить одним сообщением и стикер и текст?
Оставьте свое сообщение