java - 使用 Java 桌面应用程序的 Telegram API?

标签 java eclipse swing api telegram

我对 Java 编程并不是那么陌生,但我从未使用过外部库等。现在我想为“Telegram”开源消息传递平台开发一个桌面客户端,但当涉及到API 用法。

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

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

请帮助我,我无法帮助自己,我拼命地陷入了我的项目中。即使是一个小提示也会有所帮助。

提前致谢, 卢卡斯

最佳答案

基本上,您必须填写 GitHub 上 ex3ndr/telegram-api 存储库中给出的代码中的空白。如果你有你构建的库 Jar 文件和 Eclipse 项目的 Java 构建路径上的 tl-api-v12.jar文件,然后查看 README 的 RPC Calls 部分和

首先你需要用你的 API credentials 设置一个 AppInfo 对象,然后你还必须创建一些新的类来实现 AbsApiStateApiCallback接口(interface)。一旦这些可用,您可以创建 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 的请求响应样式。 RPC 调用是通过 doRpcCall 方法进行的,该方法从 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) { }
});

关于java - 使用 Java 桌面应用程序的 Telegram API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22635355/

相关文章:

java - 更新时读取文本文件的值

c++ - 分配新 vector 时的 std::bad_alloc - 我能做什么

java - 如何设置要读入 GUI 中文本字段的某些文本?

java - 运动背景图片

Java GPA 计算结果问题

java - ListSelection 监听器未触发事件

java - 操作系统错误: [Errno 2] No such file or directory Play framework runs in Java

java - 如何读取XML文件?谷歌应用引擎端点

Java - 同步 List 上的 getSize()

android - 无法在 Android 源文件中触发断点