Телеграмм-бот, который рассылает сообщение всем зарегистрированным пользователям.
- Компилятор -
g++
илиclang++
- Система сборки -
Make
- Telegram Bot API - tgbot-cpp (MIT LICENSE)
- Fast C++ logging library - spdlog (MIT LICENSE)
- Создать бота у Bot Father:
- Запустите бота (Bot Father)
- Напишите в чате с Bot Father команду
/newbot
- Напишите имя своего бота (название должно быть на английском и конец названия должен содержать
bot
) - Если всё получилось, то Bot Father должен предоставить вам токен (на картинке выделено красным) для того, чтобы управлять ботом
- Получить ID админа, для того, чтобы рассылать сообщение централизованно:
- Написать этому боту
- В поле ID - ваш ID
Клонировать проект:
git clone https://github.com/tstuteam/mailing-telegram-bot.git
Установить зависимости.
Запустить терминал и написать следующее:
make all
touch users.db
TELEGRAM_BOT_TOKEN=<токен бота> TELEGRAM_BOT_ADMIN_ID=<user id админа> ./bot users.db
- На команду
/start
- Бот начинает беседу с пользователем
- На команду
/register
- Регистрировать пользователя в системе
- Если пользователь это админ, тогда игнорировать
- На команду
/unregister
- Удалить зарегистрированного пользователя из системы
- Если пользователь это админ, тогда игнорировать
- Если пользователь не был зарегистрирован, тогда игнорировать
- На любое сообщение от пользователя бот повторяет сообщение пользователя
- На любое сообщение от админа бот рассылает всем зарегистрированным пользователям это сообщение
- На любые картинки от пользователя бот сохраняет картинки
Чтобы общаться с сервером Telegram бот-клиент должен посылать http запросы по адресу https://api.telegram.org
.
Библиотека tgbot-cpp
облегчает работу программисту, так как она может парсить, хранить ответы сервера Telegram в удобном виде.
Если более подробно, то при каждом обращении к API Telegram бот формирует запрос с необходимым действием.
Например, чтобы отправить сообщение пользователю бот построит примерно такой запрос: https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendMessage?chat_id=123124&text=Hello_World
.
При успешном выполнении запроса Telegram API отправит в ответ JSON, в котором будет сформирован объект Message
.
Репозиторий tgbot-cpp
имеет много примеров кода использования библиотеки, что облегчает знакомство с библиотекой.