python 使用Telethon阅读最后的消息

2sbarzqh  于 2022-12-17  发布在  Python
关注(0)|答案(1)|浏览(168)

我正在尝试从我订阅的特定频道检索最新消息(以及最新消息)。
我尝试了以下代码:

from telethon import TelegramClient, events, sync

# Remember to use your own values from my.telegram.org!
api_id = 'xxx'
api_hash = 'xxx'
client = TelegramClient('xxx', api_id, api_hash)

@client.on(events.NewMessage(chats='Channel 123'))
async def my_event_handler(event):
    print(event.raw_text)

client.start()
client.run_until_disconnected()

由于某种原因,它不工作,因为它说“频道123”没有检测到。
从特定的渠道(我不拥有但被代理)获取消息的正确方法是什么?

h43kikqp

h43kikqp1#

您需要在此行中添加channel_id
@client.on(events.NewMessage(chats='channel_id'))
有时,您可以使用频道的别名,但对于私人频道,您可以在Web浏览器中看到channel id打开电报并选择聊天,在搜索框中出现url,在最后出现id,如以下示例:

https://web.telegram.org/k/#-1515693207

这是ID -1515693207
另一种方法是使用get_entity函数获取id,并将其传递给要获取消息的函数。

channel_entity = await client.get_entity(PeerChannel(client.message.to_id.channel_id))

希望这对你有帮助。

相关问题