Using Telegram API for Java Desktop App?

匿名 (未验证) 提交于 2019-12-03 01:58:03

问题:

I am not that new to Java Programming, but I have never worked with external libraries etc. Now I want to develop a desktop client for the "Telegram" open-source messaging platform, and I'm stuck when it comes to API-Usage.

There is pretty much documentation about the Telegram API, found at https://core.telegram.org/api, and I've already downloaded mtproto, telegram-api and tl-core from github, and compiled my own library jar from source by using gradle. As well, I've already written a small application, where the user clicks a button and is promted to enter his phone number, I'm using the Java-swing-Libraries and an ActionListener for this.

The phone number entered by the user should now be checked if it is already registered, the auth.checkPhone method seems to be capable for that. But how can I refer to it within my eclipse project? I don't see any method "checkPhone" in any of the classes! What should I do?

Please help me, I can't help myself and I am desperately stuck in my project. Even a small hint would help.

Thanks in Advance, Lukas

回答1:

Essentially you will have to fill out the blanks in the code given on GitHub in the ex3ndr/telegram-api repository. If you've got the library Jar file you built and the tl-api-v12.jarfile on your Eclipse project's Java build path, then look at the RPC Calls section of the README and

First you need to set up an AppInfo object with your API credentials, then you will also have to create some new classes that implement the AbsApiState and ApiCallback interfaces. Once these are available, you can create the TelegramApi object and make an RPC call to the Telegram service as follows; in this case using the suggested auth.checkPhone method:

// 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

The TelegramApi object represents your connection to the remote service, which is a request response style of API. RPC calls are made via the doRpcCall method, which takes a request object from the org.telegram.api.requests package (the TLRequestAuthCheckPhone type in the example) filled in with the appropriate parameters. A response object (TLCheckedPhone above) is then returned with the result when it is available.

In the case of an asynchronous call the method returns immediately, and the onResult callback method is executed when the result is available:

// 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) { } });


回答2:

Or just look at this API https://github.com/pengrad/java-telegram-bot-api

It is really simple to use



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!