【问题标题】:Send a message to all users when the bot wake up机器人唤醒时向所有用户发送消息
【发布时间】:2018-06-03 16:31:51
【问题描述】:

我最近开始使用 python,我正在创建我的第一个电报机器人,主要用于管理我的 Raspberry Pi 和一些与之相关的东西。机器人已经完成,但我想在机器人启动时向所有已经与机器人交互的用户发送一条消息,基本上是说“我准备好了!”,但我找不到任何信息关于它。

API 中是否有任何特定的方法可以做到这一点?或者我应该创建另一个文件来存储所有用户的 chat_id 并用 python 读取它?

谢谢大家的帮助!!问候!

【问题讨论】:

    标签: python telegram-bot python-telegram-bot


    【解决方案1】:

    您应该有一个数据库来存储与您的机器人交互的客户的聊天 ID。 如果您能够将它们放入列表中,那么工作就完成了一半。 您需要做的就是创建一个“for 循环”,并向列表中的所有 ID 发送消息。 示例:

    message = "Good morning"
    chats =[1234447488,3748838477,4748848578,7463638488]
    for chat in chats:
        bot.send_message(chat_id=chat,text= "message")
    

    如果客户删除了您的机器人,您可能会遇到错误。你可以通过tryexcept 来捕捉它。

    【讨论】:

      【解决方案2】:

      API 中是否有任何特定的方法可以做到这一点?

      不,没有这种方法。

      或者我应该创建另一个文件来存储所有用户的 chat_id 并使用 python 读取它?

      是的,您应该自己处理。通常用户 id 和有关User <-> Bot 交互的其他信息存储在服务器上的数据库中,因为它更易于维护和搜索。

      因此,如果您想在文件中向用户发送纯文本消息,则应为文件中的每个用户调用电报机器人 API 的 SendMessage 方法。

      【讨论】:

      • 谢谢!我会选择数据库解决方案,我认为它更好,更具可扩展性。
      【解决方案3】:

      您应该将用户保存在数据库或文件中。然后用于向数据库或文件中的所有用户一一发送消息。

      【讨论】:

        【解决方案4】:

        是的,您应该创建另一个文件或使用数据库来存储您与之交互的所有用户的 chat_id。您可以查看Telegram Bots API 以查看所有可用的命令。如果没有这样的命令,那么您用于 python 的包装器中可能也不会有任何命令。

        【讨论】:

          猜你喜欢
          • 2016-06-02
          • 1970-01-01
          • 1970-01-01
          • 2019-06-27
          • 2018-11-23
          • 1970-01-01
          • 1970-01-01
          • 2012-09-21
          • 2019-08-06
          相关资源
          最近更新 更多