当机器人醒来时向所有用户发送消息

时间:2018-06-03 16:31:52

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

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

API中是否有任何特定方法可以执行此操作?或者我应该创建另一个文件来存储来自所有用户的chat_id并使用python读取它吗?

谢谢大家的帮助!!此致!

4 个答案:

答案 0 :(得分: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 来捕捉。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

  

API中是否有任何特定方法可以执行此操作?

不,没有这样的方法。

  

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

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

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

答案 3 :(得分:0)

您应该将用户保存在数据库或文件中。之后,将send_message逐个用于数据库或文件中的所有用户。