Библиотека для взаимодействия с Telegram Bot API
Первый способ - установить через opm:
$ opm install telegrambot
Второй способ - скачать нужный релиз (https://github.com/pallid/telegrambot/releasess) и установить вручную:
$ opm install -f "path/to/file.ospx"
где path/to/file.ospx - путь к файлу реализа пакета для onescript.
Пример реализации telegram bot на oscript-web
Библиотека к вашему проекту подключается с помощью директивы #Использовать telegrambot. После этого в области видимости скрипта будет доступен класс ТелеграмБот и модуль ТелеграмАПИ:
Бот = Новый ТелеграмБот;
Бот.УстановитьТокенАвторизации("ТВОЙ_ТОКЕН_БОТА");
Бот.УстановитьВебхук("ТВОЙ_АДРЕС_ДЛЯ_ХУКОВ");
///
ОбъектЗапрос = ПарсерJSON.ПрочитатьJSON(ТекстТелаЗапроса);
Если ОбъектЗапрос["message"] <> Неопределено Тогда
ТекстСообщения = ОбъектЗапрос["message"]["text"];
ПолучательИД = ОбъектЗапрос["message"]["chat"]["id"];
Если ТекстСообщения = "/start" тогда
ТекстСообщения = "Привет, в низу меню для навигации";
Сообщение = ТелеграмАПИ.НовоеСообщение(ПолучательИД, ТекстСообщения);
ТелеграмАПИ.ДобавитьКлавиатуру(Сообщение, ГлавноеМеню());
Результат = Бот.Отправить(Сообщение);
КонецЕсли;
КонецЕсли;
///
Ответ = Новый РезультатДействияСодержимое();
Ответ.КодСостояния = 200;
Ответ.ТипСодержимого = "application/json;charset=UTF-8";
Ответ.Содержимое = Результат["ok"];
Возврат Ответ;
Функция ГлавноеМеню()
КомандаКаталог = ТелеграмАПИ.НоваяКнопка("Каталог");
КомандаКорзина = ТелеграмАПИ.НоваяКнопка("Корзина");
ПервыйРяд = ТелеграмАПИ.ПолучитьРядКнопок(КомандаКаталог, КомандаКорзина);
КомандаНашТелегон = ТелеграмАПИ.НоваяКнопка("Наш телефон");
КомандаЛичныйКабинет = ТелеграмАПИ.НоваяКнопка("Личный кабинет");
ВторойРяд = ТелеграмАПИ.ПолучитьРядКнопок(КомандаНашТелегон, КомандаЛичныйКабинет);
МассивРядов = ТелеграмАПИ.ПолучитьМассивРядовДляКлавиатуры(ПервыйРяд, ВторойРяд);
Возврат ТелеграмАПИ.ПолучитьКлавиатуру(МассивРядов);
КонецФункции
На текущий момент реализовано получение данных только через WebHooks.
Разработка ведется в репозитории oscript-library/telegrambot по Git Flow. Ждем ваши PR и Issues.
Василий Попов | Карим Шакиров |
Создатель | Мейнтейнер |