2

我在 python 3.5 中将 Telepot python 库与我的机器人一起使用。我想阅读已经在聊天中的消息文本,知道电报聊天的 id 和消息的 id。我能怎么做?

4

1 回答 1

2

Telepot库是Telegram Bot HTTP API的包装器,不幸的是,该 API 目前没有这种方法可用。(有关所有可用方法的完整列表,请参见此处)。此外,telepot 不再积极维护。

尽管如此,您可以通过使用基于mtproto 协议的库(例如TelethonPyrogramMadelineProto等)直接向电报服务器发出请求(跳过中间 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_IDAPI_HASH创建应用程序来获取值(有关更多详细说明,请参阅此页面)

于 2020-09-19T19:48:33.453 回答