web-dev-qa-db-fra.com

Utilisation de l'API Telegram pour Java Desktop App?

Je ne suis pas si nouveau pour Java Programming, mais je n'ai jamais travaillé avec des bibliothèques externes, etc. Maintenant, je veux développer un client de bureau pour la plate-forme de messagerie open source "Telegram", et je ' m bloqué en ce qui concerne l'utilisation de l'API.

Il existe à peu près de la documentation sur l'API Telegram, disponible sur https://core.telegram.org/api , et j'ai déjà téléchargé mtproto, telegram-api et tl-core depuis github, et compilé mon propre pot de bibliothèque à partir de la source en utilisant gradle. De plus, j'ai déjà écrit une petite application, où l'utilisateur clique sur un bouton et est invité à entrer son numéro de téléphone, j'utilise pour cela Java-swing-Libraries et un ActionListener.

Le numéro de téléphone entré par l'utilisateur doit maintenant être vérifié s'il est déjà enregistré, la méthode auth.checkPhone semble en être capable. Mais comment y faire référence dans mon projet Eclipse? Je ne vois aucune méthode "checkPhone" dans aucune des classes! Que devrais-je faire?

S'il vous plaît, aidez-moi, je ne peux pas m'en empêcher et je suis désespérément coincé dans mon projet. Même un petit indice aiderait.

Merci d'avance, Lukas

26
LukeLR

Essentiellement, vous devrez remplir les blancs dans le code donné sur GitHub dans le référentiel ex3ndr/telegram-api . Si vous avez le fichier Jar de bibliothèque que vous avez créé et le tl-api-v12.jarfichier sur le Java de votre projet Eclipse, puis consultez la section Appels RPC de la section README et

Vous devez d'abord configurer un objet AppInfo avec vos informations d'identification API , puis vous devrez également créer de nouvelles classes qui implémentent les AbsApiState et ApiCallback interfaces. Une fois ceux-ci disponibles, vous pouvez créer l'objet TelegramApi et effectuer un appel RPC au service Telegram comme suit; dans ce cas, utilisez la suggestion auth.checkPhone méthode:

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

L'objet TelegramApi représente votre connexion au service distant, qui est un style d'API de réponse aux demandes. Les appels RPC sont effectués via la méthode doRpcCall, qui prend un objet de demande de la org.telegram.api.requests package (le type TLRequestAuthCheckPhone dans l'exemple) rempli avec les paramètres appropriés. Un objet de réponse (TLCheckedPhone ci-dessus) est ensuite renvoyé avec le résultat lorsqu'il est disponible.

Dans le cas d'un appel asynchrone, la méthode retourne immédiatement et la méthode de rappel onResult est exécutée lorsque le résultat est disponible:

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

Ou regardez simplement cette API https://github.com/pengrad/Java-telegram-bot-api

C'est vraiment simple à utiliser

0
red