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)
→ Ссылка