【问题标题】:Receive messages from the Telegram channel从 Telegram 频道接收消息
【发布时间】:2018-11-01 16:57:47
【问题描述】:

我正在尝试使用 Telethon 库从 Telegram 频道获取消息。每周消息都按类型发布:

  • 1 条消息包含姓氏
  • 此姓氏的 2 条消息

我需要收到一条带有姓氏和以下消息的消息,并忽略其他姓名的所有其他消息。

我收到带有姓氏的第一条消息:

client = TelegramClient('name', api_id, api_hash)

channel = 'MyChannel'

@client.on(events.NewMessage(chats=channel)
async def my_event_handler(event):
    if 'Surname' in event.raw_text:
        messageId = event.message.id +1
        await print(client.iter_messages(channel,offset_id=messageId)

我收到一条消息:

 <async_generator._impl.AsyncGenerator object at 0xfb8624c49>

你能告诉我如何以可读的形式获取我需要的消息吗?

【问题讨论】:

    标签: python-3.x telegram python-asyncio telethon


    【解决方案1】:

    我收到一条消息:&lt;async_generator._impl.AsyncGenerator object at 0xfb8624c49&gt;

    这只是异步生成器对象。要从中检索消息,您需要对其进行迭代

    async for msg in client.iter_messages(channel,offset_id=messageId):
       print(msg)
    

    【讨论】:

    • 谢谢,它有效,请告诉我如何通过姓氏列表选择邮件,尝试使用 While
    • @Vasai 我不确定“按姓氏列表选择邮件”是什么意思。您想按某些标准创建消息列表吗?或者对它们进行排序?还是您想根据给定的消息创建一个名称列表?
    猜你喜欢
    • 1970-01-01
    • 2017-11-28
    • 2016-04-04
    • 1970-01-01
    • 2022-07-17
    • 2016-05-19
    • 2019-11-28
    • 1970-01-01
    • 2018-08-06
    相关资源
    最近更新 更多