26

私は Java プログラミングは初めてではありませんが、外部ライブラリなどを扱ったことはありません。現在、「Telegram」オープンソース メッセージング プラットフォーム用のデスクトップ クライアントを開発したいと考えており、API の使用に関しては行き詰まっています。 .

https://core.telegram.org/apiにある Telegram API に関するかなりのドキュメントがあり、github から mtproto、telegram-api、および tl-core を既にダウンロードし、ソースから独自のライブラリ jar をコンパイルしました。グラドルを使用して。同様に、ユーザーがボタンをクリックすると電話番号を入力するように求められる小さなアプリケーションを既に作成しました。これには Java-swing-Libraries と ActionListener を使用しています。

ユーザーが入力した電話番号が既に登録されているかどうかを確認する必要があります。auth.checkPhone メソッドはそれができるようです。しかし、Eclipse プロジェクト内でどのように参照できますか? どのクラスにも「checkPhone」メソッドがありません。私は何をすべきか?

私を助けてください、私は自分自身を助けることができず、私は自分のプロジェクトで必死に立ち往生しています. ちょっとしたヒントでも役に立ちます。

前もって感謝します、 ルーカス

4

2 に答える 2

20

基本的に、GitHub のex3ndr/telegram-apiリポジトリにあるコードの空白を埋める必要があります。ビルドしたライブラリ Jar ファイルとtl-api-v12.jar、Eclipse プロジェクトの Java ビルド パスにあるファイルがある場合は、READMEのRPC Callsセクションを見て、

まず、 API 資格情報AppInfoを使用してオブジェクトを設定する必要があります。次に、およびインターフェイスを実装する新しいクラスをいくつか作成する必要があります。これらが利用可能になったら、次のようにオブジェクトを作成し、Telegram サービスへの RPC 呼び出しを行うことができます。この場合、推奨される方法を使用します。AbsApiStateApiCallbackTelegramApiauth.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.requestsTLRequestAuthCheckPhoneTLCheckedPhone

非同期呼び出しの場合、メソッドはすぐに戻り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) { }
});
于 2014-06-29T00:32:25.327 に答える
0

または、この API https://github.com/pengrad/java-telegram-bot-apiを見てください。

使い方は本当に簡単です

于 2016-08-30T20:46:07.053 に答える