我在tdlib中得到chatId,但我无法获取消息(tdAPI或java的电报数据库)

时间:2016-12-16 17:50:36

标签: java android telegram

我正在尝试将电报数据库用于java(tdlib或tdapi),但当我chatId获取SearchPublicChat频道并尝试获取消息或查看时消息我收到错误。

  

Error{code=6 message= Chat not found}

我无法理解为什么chatId我收到上面为什么当我把它传递给另一种方法时我得到了那个错误 请帮我解决这个问题和那个库。 谢谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

从聊天中获取最后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;
                }
            });
        }
    });