【问题标题】:How to use python-telegram-bot to send messages to a telegram channel如何使用 python-telegram-bot 向电报频道发送消息
【发布时间】:2021-06-11 05:24:41
【问题描述】:

我创建了一个电报机器人并将其添加到我的电报频道。现在,当我的 python 程序中发生某些事情时,我想用它向我的频道发送消息。例如,我有一个 Python 程序,它每 15 秒检查一次天气,当天气发生变化时,我希望我的机器人将新的天气信息发送到我的电报频道。

所以我的问题是,我该怎么做?我被卡住了,因为 python-telegram-bot 需要来自用户的消息才能触发,或者需要预定的订单,而我无法安排它,因为我不知道天气什么时候会改变。

【问题讨论】:

  • 您可以获取天气,然后将其存储在另一个临时变量中。然后您可以使用 if 条件来检查该临时变量中的天气信息是否相同。如果不是,请通过 bot 发送消息,并更新 temp 变量。您可以使用 while True 循环,使用 time.sleep(interval) 在设置间隔后运行检查天气功能
  • 是的,这就是我想做的,但问题在于 python-telegram-bot 库。它不允许您在没有用户请求的情况下发送消息或在已知时间安排消息

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


【解决方案1】:

最简单的方法是使用请求方法。 Telegram 提供了一个很酷的 API 来与您的机器人发送消息,您需要使用链接来执行此操作,例如:

https://api.telegram.org/bot<yourbottoken>/sendMessage?chat_id=<yourchatid>&text=Hello World!

它的作用是将 Hello World 消息发送到某个聊天 id。 如果您不知道如何获取聊天 ID,则需要 DM 您的机器人,您可以使用此链接:

https://api.telegram.org/bot<yourbottoken>/getUpdates

在页面中,会有相当多的JSON数据,你需要使用Control + F 并搜索不带@的电报用户名并搜索聊天ID

如果您想在 python 代码中执行此操作,则需要使用 requests 模块。

import requests
requests.post('https://api.telegram.org/bot<yourbottoken>/sendMessage?chat_id=<yourchatid>&text=Hello World!')

【讨论】:

  • 谢谢!我不知道电报 API。这让我的生活更轻松。我在哪里可以找到所有 API 请求方法链接?还有一件事,我怎样才能以格式化的字符串发送消息,让我们在 python 中使用 \n 呢?谢谢!
  • 嘿!你可以在Telegram Bot API Manual阅读更多关于它的信息你可以使用markdown格式,它是Here!
  • 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 2018-02-13
  • 2021-04-06
  • 2021-01-10
相关资源
最近更新 更多