java - 如何使用 Telegram API 发送请求
问题描述
我正在学习使用 Telegram 客户端 API(不是机器人 API)。我目前正在尝试简单的事情来尝试了解事情是如何运作的。我目前正在尝试检索有关频道的信息,但没有成功。
从我搜索的内容来看,文档、示例非常少,也没有教程。如果您可能知道教程,如果您与我分享它们,我将非常感激。
我用来检索信息的方法:
public static void printChatInfo(int chatId) {
try {
TLRequestChannelsGetChannels request = new TLRequestChannelsGetChannels();
TLIntVector ints = new TLIntVector();
ints.add(chatId);
request.setId(ints);
TLVector<TLAbsChat> chats = bot.getKernelComm().doRpcCallSync(request).getChats();
for (TLAbsChat chat : chats) {
System.out.println("*****************************" +
"\n*****************************" +
"\n*****************************" +
"\n*****************************" +
"\n*****************************");
System.out.println(chat.getId());
if (chat instanceof TLChat) {
TLChat chatCast = (TLChat) chat;
System.out.println(chatCast.getTitle());
} else {
System.out.println("NOT INSTANCE");
}
System.out.println("*****************************" +
"\n*****************************" +
"\n*****************************" +
"\n*****************************" +
"\n*****************************");
}
} catch (Exception e) {
e.printStackTrace();
}
}
它被称为:
public void onTLMessage(TLMessage message) {
final TLAbsPeer absPeer = message.getToId();
System.out.println(message.getMessage());
Deepthought.printChatInfo(message.getChatId());
if (absPeer instanceof TLPeerUser) {
onTLMessageForUser(message);
} else {
BotLogger.severe(LOGTAG, "Unsupported Peer: " + absPeer.toString());
}
}
System.out.println(message.getMessage());
工作正常。
例外情况TLVector<TLAbsChat> chats = bot.getKernelComm().doRpcCallSync(request).getChats();
:
java.util.concurrent.ExecutionException: org.telegram.api.engine.RpcException: INPUT_CONSTRUCTOR_INVALID_04A42D7B
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at org.telegram.bot.kernel.KernelComm.doRpcCallSync(KernelComm.java:185)
at org.telegram.Deepthought.printChatInfo(Deepthought.java:97)
at org.telegram.plugins.echo.handlers.TLMessageHandler.onTLMessage(TLMessageHandler.java:30)
at org.telegram.plugins.echo.CustomUpdatesHandler.onTLMessage(CustomUpdatesHandler.java:98)
at org.telegram.plugins.echo.CustomUpdatesHandler.onTLAbsMessageCustom(CustomUpdatesHandler.java:74)
at org.telegram.plugins.echo.CustomUpdatesHandler.onTLUpdateNewMessageCustom(CustomUpdatesHandler.java:67)
at org.telegram.bot.handlers.UpdatesHandlerBase.onTLUpdateNewMessage(UpdatesHandlerBase.java:327)
at org.telegram.bot.handlers.UpdatesHandlerBase.processUpdate(UpdatesHandlerBase.java:122)
at org.telegram.bot.kernel.MainHandler$UpdateHandlerThread.run(MainHandler.java:305)
Caused by: org.telegram.api.engine.RpcException: INPUT_CONSTRUCTOR_INVALID_04A42D7B
at org.telegram.api.engine.TelegramApi$2.onError(TelegramApi.java:345)
at org.telegram.api.engine.TelegramApi$ProtoCallback.onRpcError(TelegramApi.java:851)
at org.telegram.mtproto.MTProto.onMTProtoMessage(MTProto.java:375)
at org.telegram.mtproto.MTProto.onMTMessage(MTProto.java:255)
at org.telegram.mtproto.MTProto.access$1300(MTProto.java:44)
at org.telegram.mtproto.MTProto$ResponseProcessor.run(MTProto.java:754)
java.lang.NullPointerException
at org.telegram.Deepthought.printChatInfo(Deepthought.java:97)
at org.telegram.plugins.echo.handlers.TLMessageHandler.onTLMessage(TLMessageHandler.java:30)
at org.telegram.plugins.echo.CustomUpdatesHandler.onTLMessage(CustomUpdatesHandler.java:98)
at org.telegram.plugins.echo.CustomUpdatesHandler.onTLAbsMessageCustom(CustomUpdatesHandler.java:74)
at org.telegram.plugins.echo.CustomUpdatesHandler.onTLUpdateNewMessageCustom(CustomUpdatesHandler.java:67)
at org.telegram.bot.handlers.UpdatesHandlerBase.onTLUpdateNewMessage(UpdatesHandlerBase.java:327)
at org.telegram.bot.handlers.UpdatesHandlerBase.processUpdate(UpdatesHandlerBase.java:122)
at org.telegram.bot.kernel.MainHandler$UpdateHandlerThread.run(MainHandler.java:305)
我感谢任何可能解决或帮助解决此问题的想法。
谢谢。
解决方案
推荐阅读
- html - 如果仅添加样式,则 html 按钮焦点/轮廓的行为会有所不同,至少在 Chrome 83 中
- javascript - 如何将一组由空格分隔的参数更改为 Discord.js 中的一个参数?
- r - R Shiny“二进制运算符的非数字参数”错误
- java - Spring Boot 升级后启动慢
- latex - 与 Clisting 环境有关的是什么
- json - java - 如何检查json字符串是否包含java中的多个根元素?
- swift - 你需要在 Operation 类的 main() 方法中使用 URLSession 的 dataTask(with: URL) 吗?
- node.js - 多个 Sequelize 关联
- android - 未找到改造注释。(参数 #6),但我只有 5 个参数
- mysql - 将小数点后的数字存储到 MySQL 中的变量中