我正在尝试将电报数据库用于java(tdlib或tdapi),但当我chatId
获取SearchPublicChat
频道并尝试获取消息或查看时消息我收到错误。
Error{code=6 message= Chat not found}
我无法理解为什么chatId
我收到上面为什么当我把它传递给另一种方法时我得到了那个错误
请帮我解决这个问题和那个库。
谢谢。
答案 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;
}
});
}
});