从 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_id
和 access_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_id
和 api_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)
我需要阅读应用程序中某些 public 频道的消息,例如 https://tlgrm.ru/channels/tech 据我了解,该业务的机器人将无法正常工作。您需要使用客户端 api,但是在任何地方都可以使用通道方法连接到您需要的任何地方 channel_id 但是我不知道从哪里得到它,我只有通道名称,我怎么得到它从它的id中我没有找到这样的方法。
如何通过名称获取频道 ID?
假设您正在使用 python,我建议使用 Telethon 库。您可以使用这段代码从 @username
:
channel_id
和 access_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_id
和 api_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)