我在 python 3.5 中将 Telepot python 库与我的机器人一起使用。我想阅读已经在聊天中的消息文本,知道电报聊天的 id 和消息的 id。我能怎么做?
问问题
177 次
1 回答
2
Telepot库是Telegram Bot HTTP API的包装器,不幸的是,该 API 目前没有这种方法可用。(有关所有可用方法的完整列表,请参见此处)。此外,telepot 不再积极维护。
尽管如此,您可以通过使用基于mtproto 协议的库(例如Telethon、Pyrogram、MadelineProto等)直接向电报服务器发出请求(跳过中间 HTTP API) 。
下面是一个使用 Telethon 的例子来给你一个想法:
from telethon import TelegramClient
API_ID = ...
API_HASH = ' ... '
BOT_TOKEN = ' ... '
client = TelegramClient('bot_session', API_ID, API_HASH).start(bot_token = BOT_TOKEN)
async def main():
message = await client.get_messages(
-10000000000, # channel ID
ids=3 # message ID
)
print("MESSAGE:\n---\n")
print(message.text)
client.start()
client.loop.run_until_complete(main())
[user@pc ~]$ python main.py
MESSAGE:
---
test message
您可以通过在my.telegram.orgAPI_ID
上API_HASH
创建应用程序来获取值(有关更多详细说明,请参阅此页面)
于 2020-09-19T19:48:33.453 回答