1

我想在 id(例如 1245)之后获取特定的频道帖子。我写了这段代码:

# After connection to session in cli variable
last_post = cli(
                GetHistoryRequest(
                    peer=entity,
                    limit=100,
                    offset_date=None,
                    add_offset=0,
                    hash=0
                )
            )

但这给了我最后的 100 条消息。即使将max_id参数传递给 GetHistoryRequest,我也会从较早的消息中获取消息到较旧的消息。我怎样才能收到相反顺序的消息?

4

2 回答 2

1

您必须先阅读文档,然后再提出问题。您可以使用以下iter_messages参数简单地做到这一点:

next_post = cli.iter_messages(
                entity,
                limit=5,
                min_id=your_post_id,
                reverse=True
            )

使用reverse参数,您可以获得相反顺序的帖子。

于 2018-09-16T06:45:09.617 回答
0

这是一个使用 bot 的示例(客户端版本的代码几乎相同)

    bot = TelegramClient('bot', API_ID, API_HASH).start(bot_token=BOT_TOKEN)
    result = await bot(functions.messages.GetMessagesRequest(id=[message_id]))
    message = result.messages[0]
    print(message.text)

聊天/完整聊天

    @bot.on(events.NewMessage)
    async def any_message_arrived_handler(event):
        chat = await event.get_chat()
        full_chat = await bot(functions.messages.GetFullChatRequest(
            chat_id=chat.id
        ))

最好看的地方是文档。只需搜索页面messages,您就会找到包含示例的所需内容。

于 2019-12-27T18:03:48.957 回答