Protocole Telegram
MTProto est intégré dans le protocole de transport (TCP, HTTP,...), il n'est donc pas impossible d'utiliser Postman mais c'est très difficile à faire (ce n'est donc pas la meilleure option). Pensez que votre appel http doit implémenter MTProto 2.0 Votre message http doit donc avoir cette structure/ce format : structure
- 64-bit key_fingerprint
- Clé mesg de 128 bits
- données_chiffrées
Voir présentation schématique des messages
Seul un nombre très limité de messages de types particuliers peut être transmis en texte clair.
TelegramBots
A propos de TelegramBots est une librairie qui aide à construire un Bot en utilisant la méthode Telegram Bots Api .
Il prend en charge les deux techniques : Longs sondages y Crochet Web .
Le projet comporte un bon tutoriel que vous pouvez essayer : démarrage rapide
De plus, si vous êtes un utilisateur de Spring boot, il dispose d'une fonction Spring Boot starter aussi ( démarreur à botte de ressort .
Comment mettre en œuvre votre propre client d'authentification ?
Si vous voulez apprendre à interagir avec l'api de Telegram pour vous authentifier, vous devez lire ceci : section authentification
Ensuite, vous pourrez comprendre comment interagir avec Telegram pour vous authentifier... Je vous suggère de lire comment une application réelle utilise l'API de Telegram. Regardez toutes les utilisations de l'Api Telegram dans cet exemple d'implémentation (références aux classes du package : org.telegram.api.requests.TLRequestAuth*) :
Implantation d'un contrôleur d'activation
Comme vous pouvez le voir dans l'exemple ci-dessus, les clients télégrammes utilisent généralement TDLib.
Telegram propose deux API :
API Telegram et TDLib
Cette API vous permet de créer vos propres clients Telegram personnalisés. Elle est ouverte à 100 % à tous les développeurs qui souhaitent créer des clients Telegram. est 100% ouverte à tous les développeurs qui souhaitent créer des applications Telegram sur notre plateforme. N'hésitez pas à étudier le code source ouvert des applications Telegram existantes pour voir comment les choses fonctionnent ici. ici. N'oubliez pas d'enregistrer votre application dans notre système.
API pour les robots
Cette API vous permet de connecter des robots à notre système. Les bots Telegram sont des comptes spéciaux qui ne r à mettre en place. Ces comptes servent d'interface pour un code s'exécutant quelque part sur sur votre serveur.
Si vous voulez créer ou utiliser Telegram comme un service pour envoyer et recevoir des messages et interagir à partir d'un serveur (sans avoir besoin d'un numéro de téléphone)... Bot API devrait être votre choix.
Si vous souhaitez créer votre propre application Telegram personnalisée (votre utilisateur aura besoin d'un numéro de téléphone pour s'enregistrer, comme celui qui utilise Telegram sur un téléphone portable)... L'API/TDLib Telegram devrait être votre choix.
TDLib est :
un outil pour les développeurs tiers qui facilite la construction sécurisées et riches en fonctionnalités. TDLib s'occupe de tous les détails du réseau, du chiffrement et du stockage local des données, afin que vous puissiez consacrer plus de temps à la conception, aux interfaces réactives et à la beauté des applications. consacrer plus de temps à la conception, aux interfaces réactives et aux belles animations.
TDLib prend en charge toutes les fonctionnalités de Telegram et fait du développement de Telegram sur n'importe quelle plateforme. Il peut être utilisé sur Android, iOS, Windows, macOS, Linux et pratiquement tout autre système. La bibliothèque est open source et compatible avec pratiquement tous les langages de programmation.
Vous n'avez donc pas besoin de vous occuper des détails de bas niveau tels que le protocole MTP, le réseau, le cryptage, etc. Dans ce cas, il vous suffit d'utiliser TDLib.
La classe d'exemple que je vous ai envoyée est une application Telegram pour Android ( application telegram ). Il utilise TDLib.
Si vous voulez apprendre à créer votre propre TDLib... la source est ici : tdlib source
Il est développé en C et peut être utilisé avec Java, .NET et d'autres.
Fondamentalement, il envoie des messages via un protocole de transport (http, tcp ou udp). Par exemple, pour http, l'utilisation d'une requête post pour soumettre des messages avec le format mentionné ci-dessus MTProto. Les messages doivent être encodés.
Texte sur le fonctionnement des transports pris en charge par MTProto : transports pris en charge
Autres références :
API de Telegram : API de Telegram TDLib : TDLib
Exemple d'utilisation de TDLib en Java
Répertoire d'exemples Java : Exemple de client TDLib
-
Vérifier d'abord le repo de TDLib Repo TDLib Comme je l'ai dit, TDLib est développé en langage C, vous devez donc utiliser JNI (Java Native Interface) pour interagir avec lui. Vous devez donc compiler TDLib (avec cmake).
-
Suivez les instructions de Example (readme.md) pour compiler/précompiler TDLib sur votre plateforme ( readme ).
TDLib doit être préconstruit pour être utilisé avec Java et installé dans le répertoire local local td/
comme suit :
cd <path to TDLib sources>
mkdir jnibuild
cd jnibuild
cmake -DCMAKE_BUILD_TYPE=Release -DTD_ENABLE_JNI=ON -DCMAKE_INSTALL_PREFIX:PATH=../example/java/td ..
cmake --build . --target install
Si vous souhaitez compiler TDLib pour Java 64 bits sous Windows à l'aide de MSVC, vous devrez également ajouter -A x64
à CMake.
Sous Windows, utilisez le fichier de la chaîne d'outils Vcpkg en ajoutant le paramètre -DCMAKE_TOOLCHAIN_FILE=/scripts/buildsystems/vcpkg.cmake
Vous pouvez ensuite construire cet exemple :
cd <path to TDLib sources>/example/java
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DTd_DIR=<full path to TDLib sources>/example/java/td/lib/cmake/Td -DCMAKE_INSTALL_PREFIX:PATH=.. ..
cmake --build . --target install
La bibliothèque partagée TDLib compilée et l'exemple Java seront ensuite placés dans bin/ et la documentation Javadoc dans docs/
.
-
Vous pouvez ensuite exécuter l'exemple Java
cd <path to TDLib sources>/example/java/bin
java '-Djava.library.path=.' org/drinkless/tdlib/example/Example
Si vous obtenez l'erreur "Could NOT find JNI ..." de CMake, vous devez spécifier à CMake le chemin d'accès au JDK installé, par exemple, "-DJAVA_HOME=/usr/lib/jvm/java-8-oracle/".
Si vous obtenez une erreur java.lang.UnsatisfiedLinkError avec "Can't find dependent dépendantes", il se peut que vous deviez également copier certaines bibliothèques partagées OpenSSL et zlib dépendantes dans bin/
.
Si vous avez compilé l'exemple en version 32 bits, vous devrez peut-être de donner le paramètre -d32 à Java.
Si vous voulez ouvrir avec un IDE comme IntelliJ ou importer cet exemple dans votre projet, regardez ce ticket qui en parle : comment utiliser IntelliJ avec TDLib
Essayez d'exécuter l'exemple ! C'est très facile, il n'y a que trois classes Java (Exemple, Client et Log).
Client : Pour interagir avec TDLib avec des méthodes "natives".
Exemple : Application qui utilise le Client.
Par exemple, pour savoir comment envoyer une demande d'autorisation : demande d'authentification