从 Telegram 阅读 public 个频道的消息

Read the messages of the public channels from Telegram

我需要阅读应用程序中某些 public 频道的消息,例如 https://tlgrm.ru/channels/tech 据我了解,该业务的机器人将无法正常工作。您需要使用客户端 api,但是在任何地方都可以使用通道方法连接到您需要的任何地方 channel_id 但是我不知道从哪里得到它,我只有通道名称,我怎么得到它从它的id中我没有找到这样的方法。

如何通过名称获取频道 ID?

假设您正在使用 python,我建议使用 Telethon 库。您可以使用这段代码从 @username:

获取 channel_idaccess_hash
from telethon.tl.functions.contacts import ResolveUsernameRequest

client = TelegramClient(session_file, api_id=X, api_hash='X')
client.connect()
response = client.invoke(ResolveUsernameRequest("username"))
print(response.channel_id)
print(response.access_hash)

确保您已经拿到 api_idapi_hash。还要确保你已经验证了你的应用程序,即你有一个工作 session_file。如果您不确定如何执行上述步骤,请阅读 Github 页面中的 Telethon 的自述文件。

在最新版本中,您可以使用频道的用户名执行此操作

from telethon.tl.functions.contacts import ResolveUsernameRequest
response = client.invoke(ResolveUsernameRequest(<username>))
messages = client.get_message_history(response.peer,limit=1000)