首页 > 解决方案 > 如何使用 python-telegram-bot 向电报频道发送消息

问题描述

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

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

标签: pythontelegramtelegram-botpython-telegram-bot

解决方案


最简单的方法是使用请求方法。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!')

推荐阅读