Данная библиотека предназначена для решения задач взаимодействия с Telegram Bot API. Библиотека берет на себя задачи отправки и получения данных, проверки контроля целостности данных, распределения по типу события. Она позволяет использовать готовые оптимальные решения и упрощает разработку приложений.
Прежде чем начать работу с библиотекой, необходимо выполнить следующие действия:
-
Создание SSL/TLS конфигурации. Перед началом работы с библиотекой необходимо создать SSL конфигурацию. Для этого переходим в портал управления системой и переходим на страницу "SSL/TLS Конфигурации". Далее жмем "Создать новую конфигурацию", указываем имя и, если существует, файл сертификата. Сохраняем.
-
Установка параметров. В терминале выполняем команду
do ##class(Telegram.Bot.Settings).Init(<Имя SSL конфигурации>, <Токен вашего бота>)
и передаем в качестве параметров имя SSL и токен бота. -
Создание наследника класса AbstractHandler. В классе, унаследованном от
Telegram.Bot.AbstractHandler
, необходимо переопределить класс-методы. Методы будет вызываться при получении обновлений. В зависимости от типа обновления вызывается определенный метод. По сути, эти методы обрабатывают полученные данные и решают, что с ней делать дальше. -
Создание наследника класса Telegram.Bot.AbstractBroker. Класс, унаследованный от
Telegram.Bot.AbstractBroker
, необходим для установки Web-хуков. Этот класс является картой путей нашего Web API. В нем нужно переопределить класс-методGetHandler
, который должен возвращать экземпляр класса, описанный в пункте 3). -
Создание Web-приложения. В портале управления системой переходим на страницу "Создать новое веб приложение". Далее жмем "Создать новую конфигурацию". На странице редактирования указываем имя, начинающееся с слеша, область, в которой находится наше приложение, и полное название класса, описанного в пункте 4). При использовании Web-хуков, обновления будут отправляться на адрес
https://<Адрес сервера>/<Имя веб приложения>/<Токен нашего бота>
.
Теперь все готово для работы с нашим ботом. Простейший пример использования библиотеки можно найти в пакете Telegram.Examples
.
Все методы, которые мы можем использовать, находятся в Telegram.Bot.Api
, а транспортные объекты в Telegram.DTO.Objects
. Стандартные объекты и методы подробно описаны на сайте Telegram Bot API. Кроме стандартных методов есть еще два новых метода: SetLocalhook
, DeleteLocalhook
.
Метод SetLocalhook
принимает один аргумент - название экземпляра класса, унаследованного от AbstractHandler
. Этот метод отправляет через указанный интервал времени запрос на получение обновлений. Интервал можно изменить, вызвав в терминале do ##class(Telegram.Bot.Settings).SetValue("interval", <Время в секундах>)
.
Метод DeleteLocalhook
не принимает аргументов и удаляет установленные хуки. Если установить один из хуков, то другой удаляется автоматически.
Класс Telegram.Bot.ResponseException
является наследником %AbstractException
. Каждый раз, когда в ответе сервера параметр ok
не является истинным, библиотека создает объект исключения со следующими параметрами:
Parameter | Description |
---|---|
Name | Всегда равно "Response", указывая на область ошибки |
Method | Название метода запроса |
Data | Данные, передаваемые в REST запросе |
Description | Описание ошибки |
Code | Код ошибки |
Parameters | Экземпляр класса Telegram.DTO.Objects.ResponseParameters |
Чтобы изменить значение параметров настроек, вызываем в терминале do ##class(Telegram.Bot.Settings).SetValue(<Code>, <Value>)
, передаем в качестве первого аргумента идентификатор параметра, а в качестве второго параметра новое значение. Список всех параметров:
Code | Description |
---|---|
ssl | Имя SSL сертификата |
token | Токен Telegram бота |
last | ID последнего обновления |
local | Флаг установки Localhook |
interval | Интервал обращения к серверу в Localhook |