Echo to all bot
У меня есть echo bot на телеграм.
Его код:
import config
import telebot
bot = telebot.TeleBot(config.token)
@bot.message_handler(content_types=["text"])
def repeat_all_messages(message): # Название функции не играет никакой роли
bot.send_message(message.chat.id, message.text)
if __name__ == '__main__':
bot.infinity_polling()
Хотелось бы узнать, как сделать, чтобы все сообщения отправлялись всем пользователям. Этакий "анонимный глобальный чат"
Ответы (1 шт):
Автор решения: Sergey K.
→ Ссылка
Необходимо запомнить chat.id всех пользователей, которые начинали чат с вашим ботом. Для этого в момент, когда пользователь начинает чат, сохраняем в свою БД. Если хранить данные в оперативной памяти, то они потеряются при первом же падении бота.
В момент, когда нужно разослать сообщение всем пользователям - достаём все chat.id из базы данных и в цикле пробегаясь по ним отправляем:
for chat_id in chats_list:
bot.send_message(chat_id, message.text)