python - 如何使用 python-telegram-bot 向电报频道发送消息
问题描述
我创建了一个电报机器人并将其添加到我的电报频道。现在,当我的 python 程序中发生某些事情时,我想用它向我的频道发送消息。例如,我有一个 Python 程序,它每 15 秒检查一次天气,当天气发生变化时,我希望我的机器人将新的天气信息发送到我的电报频道。
所以我的问题是,我该怎么做?我被卡住了,因为 python-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!')
推荐阅读
- python - 如何根据预先定义的行和列值从 DataFrame 中获取值
- javascript - 即使正在通过基本身份验证,也会显示输入用户名和密码的警报
- reactjs - 使用事件侦听器反应玩笑测试 useEffect
- firebase - Firebase 实时数据库访问
- swift - Swift 如何获得 3D 文件的比例值?
- reactjs - react-leaflet 限制屏幕尺寸
- ios - 防止 Proxyman 捕获 HTTP/HTTPS 请求
- python - 获取连续日期的初始和结束 Numpy Python
- python - 找不到mysql模块
- r - 导入不带分隔符的 .DAT 文件