FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Comment construire un bot de télégramme de base avec Python 3

Si vous êtes un utilisateur de Telegram, vous avez forcément eu une « conversation » avec un chatbot à un moment donné. Avec leur incroyable personnalisation, les robots de Telegram offrent une variété d'avantages, que ce soit pour automatiser des tâches ou simplement s'amuser un peu avec les jeux de votre groupe de discussion.

Alors que certains peuvent trouver que le développement d'un bot est une tâche intimidante, ce n'est vraiment pas le cas. Avec une bonne planification, vous pouvez avoir un bot Telegram opérationnel en moins d'une heure ! Voici comment créer un bot Telegram simple qui affiche de jolies images de chats sur Internet lorsque vous y êtes invité.

Premiers pas

Pour ce tutoriel, nous allons utiliser Python 3, la bibliothèque python-telegram-bot et requests, et TheCatAPI.

Chaque bot de Telegram possède un jeton unique qui l'aide à communiquer avec l'API Bot afin d'utiliser l'interface de messagerie de l'application. L'API Bot, l'une des fonctionnalités les plus populaires de Telegram parmi les développeurs, vous permet d'utiliser ses messages comme interface.

Pour obtenir le jeton, démarrez une conversation avec @BotFather qui, comme son nom l'indique, est un bot officiel qui vous permet de créer et de personnaliser vos propres bots. Vous pouvez accéder au bot en utilisant le lien donné ou bien rechercher « @botfather » sur Telegram.

Une fois dans le chat, créez votre bot en tapant /newbot commander. Continuez à définir le nom et le nom d'utilisateur de votre bot (nous avons décidé de nommer le nôtre @pawsomebot). Suite à cela, vous obtiendrez un jeton unique pour votre bot.

Maintenant que nous avons tous les prérequis, il est temps de passer à la partie passionnante !

Installer des bibliothèques

Si vous utilisez Windows, ouvrez l'invite de commande et saisissez les commandes suivantes :

pip installer python-telegram-bot 
demandes d'installation pip

Si vous utilisez macOS ou Linux, utilisez plutôt les commandes suivantes sur votre terminal. De plus, sous Linux, assurez-vous d'être connecté en tant qu'utilisateur disposant des privilèges sudo.

pip3 installer python-telegram-bot 
demandes d'installation pip3

Ecrire le programme

Créez un nouveau dossier sur votre ordinateur et ouvrez-le dans votre éditeur préféré. Créez un nouveau fichier et nommez-le main.py. Ce fichier contiendra le code source de votre bot.

Maintenant, importons les bibliothèques que nous avons installées précédemment avec certaines de leurs fonctions intégrées.

du programme de mise à jour d'importation de telegram.ext, CommandHandler 
demandes d'importation
importer re

Le flux du programme à partir de maintenant consiste à accéder à TheCatAPI, à obtenir l'URL d'une image aléatoire et à envoyer cette image au chat de l'utilisateur.

Commençons par une fonction pour obtenir l'URL de l'image, ce qui peut être fait à l'aide du module requests. Dans cette fonction, nous chargeons les données JSON d'un fichier aléatoire fourni par TheCatAPI et extrayons son URL pour une utilisation ultérieure. Pour voir le format de l'objet JSON, rendez-vous sur https://api.thecatapi.com/v1/images/search sur votre navigateur. Vous remarquerez quelque chose comme ceci :

[{"breeds":[],"id":"a8c","url":"url.jpg","width":800,"height":533 }] 

Notez que l'objet JSON est un tableau contenant un dictionnaire. Ce dictionnaire contient l'URL avec la clé 'url'. Pour extraire l'URL, nous devons référencer le premier élément du tableau, puis la clé correspondante.

def getUrl() :
#obtenir un objet json avec les détails de l'image
#extraire l'URL de l'image de l'objet json
contenu =demandes.get('https://api.thecatapi.com/v1/images/search')
url =contenu[0]['url']
URL de retour

Ensuite, nous devons envoyer cette image dans le chat d'un utilisateur. Pour cela, nous avons besoin d'une URL d'image ainsi que de l'identifiant unique du chat de l'utilisateur. Créons une fonction wrapper pour ce faire. Tout d'abord, nous appelons le getUrl() . fonction pour obtenir l'URL d'une image aléatoire --- cette URL change à chaque fois que votre programme parcourt la fonction.

Ceci est ensuite suivi par l'obtention de l'ID de chat de l'utilisateur destinataire, qui définit l'emplacement cible du bot pour les messages et l'analyse de l'URL via l'API intégrée send_photo() de l'API Bot. fonction.

def sendImage(bot, mise à jour) :
url =getUrl()
chat_id =mise à jour.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)

Pour en savoir plus sur les différentes fonctions intégrées de Bot API et leur fonctionnement, n'hésitez pas à consulter la documentation officielle de Telegram après ce tutoriel.

Enfin, créons une fonction qui contrôle le fonctionnement global du bot. Cette fonction --- classiquement appelée main() --- est l'endroit où nous envoyons une requête HTTP à l'API Bot en utilisant le jeton que nous avons obtenu au début du didacticiel, puis définissons à quoi ressemblera l'interaction utilisateur du bot. Dans un cas aussi simple que le nôtre, cela signifie essentiellement lancer le bot et appeler le sendImage()  fonction à l'invite de l'utilisateur.

def main() :
updater =Updater("1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c")
#call sendImage() lorsque l'utilisateur tape une commande dans le chat du télégramme
updater.dispatcher.add_handler(CommandHandler('miaou',sendImage))
#démarrer le robot
updater.start_polling()
updater.idle()
si __nom__ =='__main__' :
main()

Votre programme final devrait ressembler à ceci :

du programme de mise à jour d'importation de telegram.ext, CommandHandler 
demandes d'importation
importer re
def getUrl() :
#obtenir un objet json avec les détails de l'image
#extraire l'URL de l'image de l'objet json
contenu =demandes.get('https://api.thecatapi.com/v1/images/search')
url =contenu[0]['url']
URL de retour
def sendImage(bot, mise à jour):
url =getUrl()
chat_id =mise à jour.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)
def main() :
updater =Updater("1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c")
#call sendImage() lorsque l'utilisateur tape une commande dans le chat du télégramme
updater.dispatcher.add_handler(CommandHandler('miaou',sendImage))
#démarrer le robot
updater.start_polling()
updater.idle()
si __nom__ =='__main__' :
principale()

Votre propre robot de télégramme

Toutes nos félicitations! Vous avez créé votre propre bot anti-stress qui envoie des images open source des chats Internet les plus mignons dès que vous y êtes invité. Essayez d'exécuter votre programme et tapez /meow dans le chat de votre bot pour l'activer.

Bien qu'il s'agisse d'un simple bot avec des fonctionnalités limitées, cela montre à quel point l'écosystème de développement de bots de Telegram est puissant. Vous pouvez ajouter n'importe quel nombre de sous-routines et de fonctionnalités complexes pour améliorer la fonctionnalité de votre bot --- le ciel est la limite. Pour en savoir plus sur les bots Telegram géniaux que les contributeurs ont créés au fil des ans, consultez notre liste de bots Telegram utiles.

Vous pouvez également trouver une variété de programmes sous licence open source pour les bots Telegram sur des plateformes telles que GitHub. La plupart des licences open source vous permettent d'utiliser, d'étudier, de télécharger ou de modifier le code source d'un programme.

Hébergez votre bot Telegram en ligne

Maintenant que votre bot est opérationnel, essayez de fermer main.py sur votre PC et utilisez le bot sur votre application de messagerie Telegram. Répond-il toujours au /meow commander? Non, ce n'est pas le cas.

En tant que débutant, vous pouvez être confus quant à la raison pour laquelle main.py sur votre PC doit être opérationnel alors que vous avez déjà créé un bot fonctionnant sur Internet. La raison en est que le programme utilise votre PC comme serveur local pour envoyer des requêtes HTTP aux API utilisées dans ce programme.

En tant que tel, devoir exécuter le programme chaque fois que vous souhaitez utiliser l'application n'est ni faisable ni pratique. Afin de résoudre ce problème, nous devons supprimer la dépendance du bot vis-à-vis de votre appareil

Une façon de le faire est d'utiliser une carte de circuit imprimé (PCB) à faible coût, telle que Raspberry Pi, pour configurer votre propre serveur Web et l'utiliser pour exécuter votre programme. Il présente les mêmes avantages que l'exécution du programme sur votre PC sans les coûts liés à son fonctionnement jour et nuit, car les PCB ont tendance à avoir une empreinte énergétique nettement inférieure.

Vous pouvez également déployer votre programme dans le cloud. Rendez-vous sur une plate-forme d'hébergement d'applications Web telle que Heroku, AWS, Google Cloud ou Microsoft Azure et choisissez un abonnement qui correspond le mieux à vos besoins. Nous vous recommandons de choisir un essai gratuit ou un abonnement et de le mettre à niveau à mesure que vous augmentez l'échelle ou la portée de votre programme.


[]