Библиотека для интеграции с Telegram Bot API, написанная на TypeScript.
Описание типов и методов полностью переведено на русский.
Описание типов и методов полностью переведено на русский.
Утановка библиотеки доступна через npm:
npm i scriptogram
В каталоге examples находятся примеры использования библиотеки.
// импорт класса бота
import { Scriptogram } from "scriptogram";
// создание экземпляра бота
const bot = new Scriptogram("token");
// логика работы бота
// ...
// запуск цикла обработки обновлений
bot.startUpdate();
token
необходимо получить у BotFather.
// на введенную пользователем комманду /hello бот ответит "Привет!"
bot.onCommand("/hello", async (update: IUpdate) => {
// через метод sendMessage осуществляется отправка сообщения ботом
await bot.MethodHandler.sendMessage({
chat_id: update?.message?.from?.id!,
text: "Привет!",
});
});
// на сообщение или колбек бот ответит "Понятно"
bot.onUpdate(async (update: IUpdate) => {
// логика обработки сообщений или колбеков
// ...
await bot.MethodHandler.sendMessage({
chat_id: update?.message?.from?.id!,
text: "Понятно",
});
});
// выполняется до обработки команд, сообщений или колбеков
// например, чтобы проверить права доступа у пользователя
bot.use(async (update: IUpdate) => {
if ("условие проверки") {
await bot.MethodHandler.sendMessage({
chat_id: update?.message?.from?.id!,
text: "Доступ получен",
});
return false;
}
return true;
});
Для работы с обработчиками событий необходимо реализовать класс обработчика, реализующий интерфейс IHandler
.
Реализация обработчика сообщений - пример.
Реализация обработчика клавиатуры - пример.
После чего добавить обработчики в бота:
bot.setHandler(new MessageHandler(state));
bot.setHandler(new KeyboardHandler());
Для работы с состоянием бота необходимо реализовать класс состояния (пример), после чего добавить его в бота:
// State - кастомный класс для работы с состоянием бота
var state = new State();
bot.setState(state);
Эта библиотека доступна по лицензии MIT. Файл LICENSE для подробностей.