当前位置: 首页 > 面试题库 >

使用Telegram API for Java Desktop App?

田文景
2023-03-14
问题内容

我不是Java编程的新手,但是我从未使用过外部库等。现在,我想为“ Telegram”开源消息传递平台开发一个桌面客户端,并且在使用API​​时遇到了麻烦。

在https://core.telegram.org/api上有很多关于Telegram
API的文档,我已经从github下载了mtproto,telegram-api和tl-
core,并从源代码编译了我自己的库jar通过使用gradle。同样,我已经编写了一个小应用程序,用户单击一个按钮并提示输入他的电话号码,为此,我正在使用Java-
swing-Libraries和ActionListener。

现在应该检查用户输入的电话号码是否已经注册,似乎可以使用auth.checkPhone方法。但是我该如何在我的Eclipse项目中引用它呢?在任何类中都没有看到任何方法“
checkPhone”!我该怎么办?

请帮助我,我自己也无法帮助,我极度陷入我的项目中。即使是很小的提示也会有所帮助。

在此先感谢,卢卡斯


问题答案:

本质上,您将必须在ex3ndr / telegram-api存储库中GitHub上给出的代码中填写空白。如果您拥有构建的库Jar文件,并且该tl- api-v12.jar文件位于Eclipse项目的Java构建路径中,请查看README 的RPC
Calls
部分和

首先,您需要AppInfo使用API凭据设置一个对象,然后还必须创建一些实现AbsApiStateApiCallback接口的新类。一旦这些可用,就可以创建TelegramApi对象并按如下所示对Telegram服务进行RPC调用;在这种情况下,使用建议的auth.checkPhone方法:

// TODO set up AbsApiState, AppInfo and ApiCallback objects
TelegramApi api = new TelegramApi(state, appInfo, apiCallback);

// Create request
String phoneNumber = "1234567890";
TLRequestAuthCheckPhone checkPhone = new TLRequestAuthCheckPhone(phoneNumber);

// Call service synchronously
TLCheckedPhone checkedPhone = api.doRpcCall(checkPhone);
boolean invited = checkedPhone.getPhoneInvited();
boolean registered = checkedPhone.getPhoneRegistered();
// TODO process response further

TelegramApi对象表示您与远程服务的连接,这是API的请求响应样式。通过doRpcCall方法进行RPC调用,该方法从填充有适当参数的org.telegram.api.requests包(TLRequestAuthCheckPhone示例中的类型)中获取请求对象。如果有响应TLCheckedPhone结果,则返回一个响应对象(上面)。

在异步调用的情况下,该方法立即返回,并且onResult在结果可用时执行回调方法:

// Call service aynchronously
api.doRpcCall(checkPhone, new RpcCallbackEx<TLCheckedPhone>() {
    public void onConfirmed() { }
    public void onResult(TLCheckedPhone result) {
        boolean invited = checkedPhone.getPhoneInvited();
        boolean registered = checkedPhone.getPhoneRegistered();
        // TODO process response further
    }
    public void onError(int errorCode, String message) { }
});


 类似资料:
  • 有没有办法在使用 jongo 查询 MongoDB 时添加 ?我发现这样的错误 - '排序超出了 104857600 字节的内存限制,但没有选择加入外部排序。正在中止操作。传递 allowDiskUse:true 可以选择加入,可以通过以下方式阻止,您的聚合看起来像 但据我所知,Jongo 中的类仅将管道应用于自身,然后您可以使用 方法执行。 是否有任何方法可以将该参数传递给mongo而不从Jon

  • 问题内容: 我在远程服务器上有一个管理Web应用程序。该应用程序是使用MEAN堆栈编写的,我列出了连接到Web应用程序所需的所有RESTful路由。 我正在编写一个Java客户端应用程序,该应用程序需要从该管理应用程序发送和接收数据。如果我具有服务器的IP地址和REST路由,如何将客户端连接到Web应用程序? 我想我需要提供到服务器和REST API文件的URL连接,然后仅调用诸如和的路由功能。

  • 问题内容: 我使用spring数据和方法来获取模型。调用此方法时如何使用查询提示? 上面的源代码工作正常,但是我不能为我的JPA提供程序(在我的情况下为EclipseLink)设置QueryHint。 以上是我使用spring-data使用查询提示的方式, 我还发现了这个尚未解决的问题。 问题答案: 当我想使用spring-data创建查询时,请遵循上述算法。 1)是否已经提供的查询 通过弹簧数据

  • 我使用spring数据和方法获取模型。调用此方法时如何使用查询提示 上面的源代码运行良好,但我无法为我的JPA提供者(在我的例子中是EclipseLink)设置QueryHint。 我使用spring数据使用查询提示的方式如下:, 我也发现这个还没有解决。

  • 通过io的requestAbs方法调用/调用/使用REST API的vertx实现。vertx。果心http。vertx-core-3.2.0中的HttpClient类。jar导致HTTP错误::302,响应数据为HTML Erro响应。 不确定requestAbs方法的行为,因为没有引发异常,也没有写入任何日志。此外,还随附了使用vertx JAR的此方法的源代码。如果方法实现有bug,是否有问

  • 问题内容: 说我有: 我该如何使用表单外部的“提交”按钮提交该表单,我认为在HTML5中有一个“提交”的动作属性,但是我不确定那是否是完全跨浏览器的,如果不是这样的话,做这个? 问题答案: 一个对我来说很好的解决方案,在这里仍然缺少。它需要具有目视隐藏或元件whithin的,和相关的它元件外部。它看起来像这样: 现在,此链接使您可以通过单击元素来“单击”表单元素。

  • 在Hamcrest中有没有一种方法可以比较一个数字范围内的一个数字?我在找这样的东西:

  • 首先创建一个静态页面 index.html 和一个 JS 入口文件 entry.js: <!-- index.html --> <html> <head> <meta charset="utf-8"> </head> <body> <script src="bundle.js"></script> </body> </html> // entry.js document.write('It