【问题标题】:I get chatId in tdlib but i can not get message (tdAPI or telegram database library for java)我在 tdlib 中获得了 chatId,但我无法获得消息(tdAPI 或 Java 的电报数据库库)
【发布时间】:2017-05-02 13:43:58
【问题描述】:

我正在尝试将 telegram 数据库库 用于 java(tdlib 或 tdapi),但是当我通过 SearchPublicChat 获得频道的 chatId 并尝试获取消息或查看消息时,我得到一个错误。

Error{code=6 message= Chat not found}

我不明白为什么我收到上面的chatId 为什么当我将它传递给另一个方法时我得到那个错误 请帮我解决这个问题和那个图书馆。 谢谢。

【问题讨论】:

    标签: java android telegram


    【解决方案1】:

    在通过 id 请求聊天之前,TdLib 必须知道当前会话中的此聊天。您需要通过 @mention_link 搜索此聊天(如果它是公开的),或者获取整个聊天列表。此外,如果此聊天发生某些操作(例如聊天中的新消息、聊天更新...),图书馆将了解聊天。
    这也适用于消息、用户等。只有当 TdLib 知道该实体时,您才能通过 id 请求它。

    【讨论】:

    • 哦,谢谢它已售出。我没有在一个会话中做这两个现在我尝试过,现在它可以工作了。谢谢。
    【解决方案2】:

    从聊天中获取最近 15 条消息的示例

    String username = "any_chat_public_link";
    TdApi.SearchPublicChat searchPublicChat=new TdApi.SearchPublicChat(username);
        TG.getClientInstance().send(searchPublicChat, new Client.ResultHandler() {
            @Override
            public void onResult(TdApi.TLObject object) {                
                TdApi.Chat chat = (TdApi.Chat) object;
                TdApi.Message topMessage = chat.topMessage;
    
                long chatId = chat.id;
    
                TdApi.GetChatHistory getChatHistory = new TdApi.GetChatHistory(chatId, topMessage.id, 0, 15);
                TG.getClientInstance().send(getChatHistory, new Client.ResultHandler() {
                    @Override
                    public void onResult(TdApi.TLObject object) {
                        TdApi.Messages messages = (TdApi.Messages) object;
                    }
                });
            }
        });
    

    【讨论】:

    • 如何获取最新的 200 个聊天记录(我需要聊天 ID)?
    猜你喜欢
    • 2017-07-04
    • 1970-01-01
    • 2021-01-04
    • 2021-06-29
    • 2018-01-07
    • 1970-01-01
    • 2014-12-01
    • 2014-12-24
    • 1970-01-01
    相关资源
    最近更新 更多