Russian | English
tnt-tg-bot - это библиотека, написанная на Lua для платформы Tarantool, которая предоставляет минималистичный интерфейс для работы с Telegram Bot API.
- Практически полная поддержка Telegram Bot API
- Простой интерфейс
- Асинхронная обработка запросов
- Встроенная поддержка работы с платежами в Telegram Stars
- Встроенные методы для простой обработки команд, в том числе callback
- Вы сами даёте названия событиям, из коробки у вас только -
bot.events.onGetUpdate(ctx)
- Простая работа с Web App (в будущем будет пример)
- Базовая поддержка LDoc
- Больше 10-ти примеров и они будут пополняться
- Легкая интеграция с Tarantool
Из-за простой и понятной архитектуры, отсутствующий функционал добавлять несложно.
- Установите
git
,curl
,lua 5.1
иluarocks
. - (опционально) если нужна работа с Web App:
Потребуется установить rock пакетluaossl
, для него в вашем дистрибутиве -
установите заголовочные файлы дляlua 5.1
иopenssl
. - Установите tarantool
- Выполните скрипт автоматической установки необходимых пакетов
bash tnt-tg-bot.pre-build.sh
- В случае проблем, перейти к ручной установки.
Note
Для успешной сборки luaossl
- биндинга к OpenSSL, потребуются заголовочные файлы OpenSSL и Lua 5.1.
В Ubuntu можно установить, выполнив sudo apt install libssl-dev liblua5.1-0-dev
.
luaossl
нужен для работы модуля bot/libs/parseInitData.lua
, модуль нужен для обработки данных веб Mini App.
https://core.telegram.org/bots/webapps#validating-data-received-via-the-mini-app
- Установите
git
,curl
,lua 5.1
иluarocks
. - Установите tarantool
- (опционально) если нужна работа с Web App:
Потребуется установить rock пакетluaossl
, для него в вашем дистрибутиве -
установите заголовочные файлы дляlua 5.1
иopenssl
. - Установка необходимых пакетов с помощью
luarocks
- HTTP клиент/сервер (обязательно)
luarocks install --local --tree=$PWD/.rocks --server=https://rocks.tarantool.org/ http
- Multipart Post обработчик (обязательно)
luarocks install --local --tree=$PWD/.rocks --lua-version 5.1 lua-multipart-post 1.0-0
- Биндинг к openssl (опционально)
luarocks install --local --tree=$PWD/.rocks --lua-version 5.1 luaossl
examples/echo-bot.lua
- Простой эхо-ботexamples/ping-pong.lua
- Реакция на команду /pingexamples/send-animation.lua
- Отправка gif по команде /get_animationexamples/send-document.lua
- Отправка документа по команде /get_documentexamples/send-image.lua
- Отправка изображения по команде /get_imageexamples/send-image-2.lua
- Упрощенный пример отправки изображения черезbot.sendImage
examples/send-media-group.lua
- Отправка группы медиа-файловexamples/simple-callback.lua
- Пример обработки callback - /send_callbackexamples/simple-callback-2.lua
- Упрощенный пример обработки callback командexamples/simple-process-commands.lua
- Пример простого процессинга командexamples/routes-example/init.lua
- Пример работы ручек в ботеexamples/stars-payment/init.lua
- Пример обработки платежей в звездахexamples/stars-payment/echo-bot-webhook.lua
- Простой эхо бот через webhook
BOT_TOKEN
- токен вашего бота
BOT_TOKEN="1348551682:AAFK3iZwBqEHwSrPKyi-hKyAtRgUwXrTiWW" tarantool examples/echo-bot.lua
bot/init.lua
- Точка входаbot/libs
- Вспомогательные библиотекиbot/enums
- Инамыbot/classes
- Классы для объектов телеграммаbot/middlewares
- Посредникиbot/processes
- Процессы. Пример processCommand - процессинг командbot/types
- Модели/валидаторы для типов телеграммаbot/ext
- Встроенные экстеншины
Метод/Свойство | Описание | Пример использования |
---|---|---|
bot:cfg | Инициализация настроек | bot:cfg { token = "123468:foobarBAZ" } |
bot.call | Выполнение запроса к Telegram API | bot.call('sendMessage', {chat_id = 123, text = 'Привет!'}) |
bot.events | Таблица с пользовательскими событиями | function bot.events.onPoll(ctx) ... end |
bot.events.onGetUpdate | Событие обработки обновлений от Telegram | function bot.events.onGetUpdate(ctx) ... end |
bot.sendImage | Упрощенная отправка картинки | examples/send-image-2.lua |
bot.Command | Минимальный обработчик команд | bot.Command(ctx) |
bot.CallbackCommand | Минимальный обработчик callback команд | bot.CallbackCommand(ctx) |
bot:startWebHook | Запуск бота на удаленном сервере | Пример examples/echo-bot-webhook.lua |
bot:startLongPolling | Запуск бота в режиме long polling | Любой пример из examples/* |
По наличию аргументов см. ldoc - doc/index.html
Через форк репозитория и открытия Pull Request