Создание телеграм-бота. Простой пример, Hello World!

телеграм 1С

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

Чтобы зарегистрировать нового бота, необходимо добавить в друзья контакт BotFather и там следовать инструкции. В итоге будет создан токен для доступа к боту.

Для простоты демонстрации создадим внешнюю обработку. В ней добавим команду для включения обработчика оповещения, он будет с определенным интервалом опрашивать бота и получать накопленные сообщения.

В обработку добавим реквизиты:

  • Токен
  • Сервер
  • Бот

Создадим форму и инициализируем переменные.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Объект.Бот = "@Test_record_bot"; //Имя бота
    Объект.Токен = "765095809:AAHjcCMtQMRBaszb94MVO44bhrK36"; //Токен telegram
    Объект.Сервер = "api.telegram.org";
КонецПроцедуры

Добавим на форму кнопку, которая будет запускать обработчик ожидания для получения данных из телеграм.

&НаКлиенте
Процедура АвтоматическаяРабота(Команда)
    ПодключитьОбработчикОжидания("Автомат",10);
КонецПроцедуры

&НаКлиенте
Процедура Автомат()
    ПоказатьСообщения();
КонецПроцедуры

Опишем процедуру получения данных из телеграм. Возможно здесь необходимо будет указать описание прокси-сервера.

&НаКлиенте
Процедура ПоказатьСообщения(Команда = Неопределено)
    Ресурс = "bot" + Объект.Токен + "/getUpdates";
    Соединение = Новый HTTPСоединение(Объект.Сервер,443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
    Запрос = Новый HTTPЗапрос(Ресурс);
    Ответ = Соединение.Получить(Запрос);
    ПрочитатьСтрокуОтвета(Ответ.ПолучитьТелоКакСтроку());
КонецПроцедуры

Создадим процедуру, которая будет обрабатывать полученные данные

&НаСервере
Процедура ПрочитатьСтрокуОтвета(СтрокаОтвета)

    ЧтениеJSON = Новый ЧтениеJSON();
    ЧтениеJSON.УстановитьСтроку(СтрокаОтвета);
    Результат = ПрочитатьJSON(ЧтениеJSON);
    ЧтениеJSON.Закрыть();

    Если Результат.ok = Истина Тогда
           Для Каждого СтрокаРезультата Из Результат.result Цикл
                   Если СтрокаРезультата.message.text = "/start" Тогда
                         ВывестиПриветствие(СтрокаРезультата.message.chat.id)
                   КонецЕсли; 
           КонецЦикла;
    КонецЕсли;

КонецПроцедуры

И последний шаг — напишем ответ от бота

Процедура ВывестиПриветствие(chat_id)
   Ресурс = "bot" + Объект.Токен + "/sendMessage?chat_id=" + СтрЗаменить(Формат(chat_id, "ЧГ=0"), ".", "") + "&text= Здравствуйте!";
   Соединение = Новый HTTPСоединение(Объект.Сервер,443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
   Запрос = Новый HTTPЗапрос(Ресурс);
   Ответ = Соединение.Получить(Запрос);
КонецПроцедуры

Бот готов, на сообщение «/start» он отвечает приветствием. Дальнейшая работа с ботом зависит от вашей фантазии и подготовки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*

code