使用Telegram API for Java Desktop App?
我不是Java编程的新手,但我从未使用过外部库等。现在我想为“Telegram”开源消息传递平台开发一个桌面客户端,当涉及到API使用时我会陷入困境。
关于Telegram API的文档很多,可以在https://core.telegram.org/api找到,我已经从github下载了mtproto,telegram-api和tl-core,并从源代码编译了我自己的库jar通过使用gradle。 同样,我已经编写了一个小应用程序,用户单击一个按钮并提示输入他的电话号码,我正在使用Java-swing-Libraries和一个ActionListener。
现在应该检查用户输入的电话号码是否已经注册,auth.checkPhone方法似乎能够进行注册。 但是我怎么能在我的eclipse项目中引用它呢? 我没有在任何类中看到任何方法“checkPhone”! 我该怎么办?
请帮助我,我无法帮助自己,我拼命地陷入了我的项目。 即使是一个小提示也会有所帮助。
在此先感谢Lukas
基本上,您必须填写ex3ndr / telegram-api存储库中GitHub上给出的代码中的空白。 如果您已经构建了库文件Jar文件和Eclipse项目的Java构建路径上的tl-api-v12.jar
文件,那么请查看README的RPC Calls部分和
首先,您需要使用API凭据设置AppInfo
对象,然后您还必须创建一些实现AbsApiState
和ApiCallback
接口的新类。 一旦这些可用,您可以创建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() { 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 https://github.com/pengrad/java-telegram-bot-api
它非常简单易用
- 如何在Jersey 2中修改QueryParam和PathParam
- 匿名上传File对象到Imgur API(JSON)给出了身份validation错误401
- 在API 21上可以使用finishAndRemoveTask()
- Amazon Product Advertising API使用Java签署了请求
- Java SDK for REST API服务的error handling
- 当前平台不支持Desktop API
- 当我使用NetBeans 6.8和Eclipse运行此代码时,为什么输出会有所不同?
- 如何使用Eclipse JFace中的IDecorationContext api
- 使用Java API制作ePub