Skip to content

kasperskei/cache-telegram-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Cache Telegram Bot

Описание

Данная библиотека предназначена для решения задач взаимодействия с Telegram Bot API. Библиотека берет на себя задачи отправки и получения данных, проверки контроля целостности данных, распределения по типу события. Она позволяет использовать готовые оптимальные решения и упрощает разработку приложений.

Туториал

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

  1. Создание SSL/TLS конфигурации. Перед началом работы с библиотекой необходимо создать SSL конфигурацию. Для этого переходим в портал управления системой и переходим на страницу "SSL/TLS Конфигурации". Далее жмем "Создать новую конфигурацию", указываем имя и, если существует, файл сертификата. Сохраняем.

  2. Установка параметров. В терминале выполняем команду do ##class(Telegram.Bot.Settings).Init(<Имя SSL конфигурации>, <Токен вашего бота>) и передаем в качестве параметров имя SSL и токен бота.

  3. Создание наследника класса AbstractHandler. В классе, унаследованном от Telegram.Bot.AbstractHandler, необходимо переопределить класс-методы. Методы будет вызываться при получении обновлений. В зависимости от типа обновления вызывается определенный метод. По сути, эти методы обрабатывают полученные данные и решают, что с ней делать дальше.

  4. Создание наследника класса Telegram.Bot.AbstractBroker. Класс, унаследованный от Telegram.Bot.AbstractBroker, необходим для установки Web-хуков. Этот класс является картой путей нашего Web API. В нем нужно переопределить класс-метод GetHandler, который должен возвращать экземпляр класса, описанный в пункте 3).

  5. Создание 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published