为Java桌面应用程序使用电报API?

为Java桌面应用程序使用电报API?,java,eclipse,swing,api,telegram,Java,Eclipse,Swing,Api,Telegram,我对Java编程并不陌生,但我从未使用过外部库等。现在我想为“Telegram”开源消息传递平台开发一个桌面客户端,但在API使用方面我遇到了困难 有很多关于电报API的文档,可以在找到,我已经从github下载了mtproto、电报API和tl core,并使用gradle从源代码编译了我自己的库jar。另外,我已经编写了一个小应用程序,用户点击一个按钮并被提示输入他的电话号码,我正在为此使用JavaSwing库和ActionListener 如果用户输入的电话号码已经注册,那么现在应该检查它

我对Java编程并不陌生,但我从未使用过外部库等。现在我想为“Telegram”开源消息传递平台开发一个桌面客户端,但在API使用方面我遇到了困难

有很多关于电报API的文档,可以在找到,我已经从github下载了mtproto、电报API和tl core,并使用gradle从源代码编译了我自己的库jar。另外,我已经编写了一个小应用程序,用户点击一个按钮并被提示输入他的电话号码,我正在为此使用JavaSwing库和ActionListener

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

请帮帮我,我无法控制自己,我在我的项目中陷入了绝望。哪怕是一个小小的暗示都会有所帮助

提前感谢,,
Lukas

基本上,您必须在存储库中的GitHub上填写代码中的空白。如果您已经在Eclipse项目的Java构建路径上获得了构建的库Jar文件和
tl-api-v12.Jar
文件,那么请查看自述文件和

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

TelegramApi
对象表示您与远程服务的连接,这是一种请求-响应类型的API。RPC调用是通过
dorpcall
方法进行的,该方法从
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) { }
});
//连续调用服务
api.dorpcall(checkPhone,新的RpcCallbackEx(){
已确认()的公共无效({}
公共void onResult(TLCheckedPhone结果){
boolean invested=checkedPhone.getPhoneInvested();
boolean registed=checkedPhone.getPhoneRegistered();
//TODO进程响应进一步
}
public void onError(int errorCode,字符串消息){}
});
或者看看这个API


使用起来非常简单

嗨,你可以试着看看我的问题:看看这是否有用。:)嘿,对不起,我上次回复已经有一段时间了,我放弃了这个项目,直到我看到有人回复了我的旧帖子。我想,我最了解如何开始这个项目,但现在我被困在“apiStorage”这一点上。ex3ndr-gitHub-page的readme.md中说,“电报Api”-对象需要一个“ApiStorage”-对象,由“new MyApiStorage”创建。但是我找不到“MyApiStorage”类,那么我应该放什么呢?此外,我无法用gradle构建库。我从GitHub下载了资源,并按照自述文件中的说明重命名了文件夹,但gradle总是以“*出了什么问题:无法确定任务的依赖项”:test”失败找不到名为“default”的配置。我不知道如何修复此问题,您能帮忙吗?现在,我已经将原始资源文件复制到我的eclipse项目中,但是必须有一种方法来解决gradle问题。如果您能回答我的问题,我将不胜感激。卢卡斯
MyApiStorage
bit是最复杂的部分。您需要创建一个实现
org.telegram.api.engine.storage.AbsApiState
接口的类,并将其用作构造函数的第一个参数。您的IDE应该能够帮助您构建一个骨架类来开始…您好,grkvlt!我已经能够弄明白这一点,但我在这里停留在如何发送和接收消息。请告知如何进行。LukeLR,检查电报机器人示例应用程序!它解决了urs的一些问题!您好,我已经阅读并尝试实现这里给出的示例,但不幸的是它不起作用。它还说,我要做的唯一一件事就是填充示例应用程序中的空白,但id似乎没有任何“空白”要填充。命令行中的示例是C语言,因此我担心它与我需要的情况不匹配。我解决了脱体的问题,但我得到了一个TimeoutException。同样,其中一个超时似乎是由Linux引起的(java必须使用/dev/urandom而不是/dev/random),但在这之后,我又得到了一个超时。抱歉,这对我来说太多了。虽然这个链接可以回答这个问题,但最好在这里包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效
// 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) { }
});