@Fen1kz

Как лучше сделать бота в телеграме?

Ситуация такая - у меня есть онлайн игра, в которой люди могут создавать комнаты и звать в них друзей или случайных людей играть. Я бы хотел сделать телеграм бота, который бы мог прокидывать оповещения в телегу интересующимся людям.

Пример использования со стороны юзера:
1. Юзер заходит в игру, создает комнату, жмет кнопку "сообщить всем".
2. Все кто подписался на бота в телеге получают оповещение "юзер такой-то создал игру, заходи"
3. Если юзер тут же вышел из игры, бот удаляет свое оповещение

Я не работал с тг ботами, но вижу это так:

1. Есть бот, можно подписаться/отписаться на его рассылку или добавить в канал
2. Юзер заходит в игру, создает комнату, жмет кнопку "сообщить всем".
3. Запрос идет на мой сервер
4. От моего сервера запрос идет... эээ, либо боту на мой сервер, либо на api.telegram.org?
5. ...
6. PROFIT, или же бот рассылает всем подписанным и всем каналам куда он добавлен сообщения

Вопросы:
1. Есть ли схема адекватнее?
2. Есть ли массовая рассылка всем заинтересованным или это делается просто циклом `for (id in list) sendMessage(id, msg)`
3. Не забанят ли бота если ему добавятся 100 юзеров и его добавят в 100 каналов?
4. Под такой функционал нужен ли свой Local Bot API Server или можно как-то захостить его на серверах телеграмма? (Если можно на серверах телеграмма, то не нашел в хелпе где про это расписано )
5. Как получить всех юзеров и все каналы где есть мой бот?

Бота за меня делать не надо, просто не хватает общего обзора какого-то
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
AlexNest
@AlexNest
Работаю с Python/Django
От моего сервера запрос идет... эээ, либо боту на мой сервер, либо на api.telegram.org?

Не работал с TG-ботами, но знаю, что их можно писать с использованием Flask, который в свою очередь является веб-фреймворком, написанном на python. Следовательно "сигналы" из игры можно реализовать путем отправки http-запросов на flask.
Вот пример на хабре.
По поводу вопросов:
1.В целом - +/- вменяемая.
2.Да, по идее - циклом.
3.Маловероятно. Все-таки ТГ довольно популярный мессенджер и 100 пользователей это ни о чем.
4.В общем случае - оптимальным вариантом будет аренда VDS. Телеграмм сервера не предоставляет, насколько я знаю. По поводу Local Bot API не знаю.
5.Оптимальный вариант - сохранять их в базу данных. Id`шники пользователей получаются сразу-же при первом взаимодействии с ботом. Как получить id групп не знаю. Возможно есть событие вроде on_join, которое срабатывает при приглашении бота. Не уверен, что оно есть - смотрите в доках. Если его не будет, нужно заставить реагировать на пользовательскую команду.
upd: Да, как написали в коментах - единый канал будет в разы проще с точки зрения реализации.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы