我正在尝试从我订阅的特定频道检索最新消息(以及最新消息)。
我尝试了以下代码:
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”没有检测到。
从特定的渠道(我不拥有但被代理)获取消息的正确方法是什么?
1条答案
按热度按时间h43kikqp1#
您需要在此行中添加channel_id
@client.on(events.NewMessage(chats='channel_id'))
有时,您可以使用频道的别名,但对于私人频道,您可以在Web浏览器中看到
channel id
打开电报并选择聊天,在搜索框中出现url,在最后出现id,如以下示例:这是ID
-1515693207
另一种方法是使用get_entity函数获取id,并将其传递给要获取消息的函数。
希望这对你有帮助。