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

Comment créer 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 pour s'amuser un peu avec les jeux de votre groupe de discussion.





Alors que certains peuvent trouver que développer 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 simple bot Telegram qui affiche de jolies images de chats Internet lorsque vous y êtes invité.





Commencer

Pour ce tutoriel, nous allons utiliser Python 3, le python-telegram-bot et demandes bibliothèque, et LeCatAPI .





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

mon pc est-il compatible windows 10

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 à l'aide du lien fourni ou rechercher '@botfather' sur Telegram.



Une fois dans le chat, créez votre bot en tapant le /nouveaubot 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 à votre bot.

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





Installation de bibliothèques

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

pip install python-telegram-bot
pip install requests

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





pip3 install python-telegram-bot
pip3 install requests

Rédaction du 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.

from telegram.ext import Updater, CommandHandler
import requests
import 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 de requêtes. 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 regarder 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 qui contient 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():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url

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 obtenirUrl() . 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 de l'obtention de l'ID de discussion de l'utilisateur destinataire, qui définit l'emplacement cible du bot pour les messages et de l'analyse de l'URL via l'API intégrée de l'API Bot. envoyer une photo() fonction.

def sendImage(bot, update):
url = getUrl()
chat_id = update.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 Telegram documents officiels après ce tuto.

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

def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

Votre programme final devrait ressembler à ceci :

from telegram.ext import Updater, CommandHandler
import requests
import re
def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url
def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)
def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

Votre propre robot 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 lorsque vous y êtes invité. Essayez d'exécuter votre programme et tapez /Miaou 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 les fonctionnalités de votre bot --- le ciel est la limite. Pour en savoir plus sur les formidables robots Telegram créés par les contributeurs au fil des ans, consultez notre liste des robots Telegram utiles .

Vous pouvez également trouver une variété de programmes sous licence open source pour les robots 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 Telegram Bot 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 /Miaou commander? Non, ce n'est pas le cas.

En tant que débutant, vous ne savez peut-être pas pourquoi 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 sur votre appareil

Une façon de le faire consiste à 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 de le garder allumé toute la journée et toute la nuit, car les PCB ont tendance à avoir une empreinte énergétique considérablement plus faible.

Alternativement, 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.

Partager Partager Tweeter E-mail Comment héberger votre site Web Python gratuitement sur Heroku

Besoin d'héberger un petit site web gratuitement ? Heroku pourrait être exactement ce que vous recherchez.

Lire la suite
Rubriques connexes
  • La programmation
  • Python
  • Télégramme
  • Chatbot
  • Bots de médias sociaux
A propos de l'auteur Yash Chellani(10 articles publiés)

Yash est un étudiant en informatique en herbe qui aime construire des choses et écrire sur tout ce qui concerne la technologie. Dans son temps libre, il aime jouer au squash, lire un exemplaire du dernier Murakami et chasser les dragons dans Skyrim.

Plus de Yash Chellani

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner