Movatterモバイル変換


[0]ホーム

URL:


Open In App
Next Article:
Twitter Sentiment Analysis using Python
Next article icon

In this article, we are going to see how to create a telegram bot using Python.

In recent times Telegram has become one of the most used messaging and content sharing platforms, it has no file sharing limit like Whatsapp and it comes with some preinstalled bots one can use in any channels (groups in case of whatsapp) to control the behavior or filter the spam messages sent by users.

Requirements

Installation of the module

We can install this module via pip and conda with the below command.

# installing via pippip install python-telegram-bot# installing via condaconda install -c conda-forge python-telegram-bot

Steps to create your first bot

Step 1:After opening an account on Telegram, in the search bar at the top search for "BotFather"

Step 2:Click on the 'BotFather' (first result) and type/newbot

Step 3:Give a unique name to your bot. After naming it, Botfather will ask for its username. Then also give a unique name BUT remember the username of your bot must end with thebot,likemy_bot, hellobot etc.

Step 4:After giving a unique name and if it gets accepted you will get a message something like this -

Here the token value will be different for you, we will use this token in our python code to make changes in our bot and make it just like we want, and add some commands in it.

Stepwise implement

Step 1: Importing required libraries

Python3
fromtelegram.ext.updaterimportUpdaterfromtelegram.updateimportUpdatefromtelegram.ext.callbackcontextimportCallbackContextfromtelegram.ext.commandhandlerimportCommandHandlerfromtelegram.ext.messagehandlerimportMessageHandlerfromtelegram.ext.filtersimportFilters

Brief usage of the functions we are importing:

  • Updater:This will contain the API key we got from BotFather to specify in which bot we are adding functionalities to using our python code.
  • Update:This will invoke everytime a bot receives an update i.e. message or command and will send the user a message.
  • CallbackContext:We will not use its functionality directly in our code but when we will be adding the dispatcher it is required (and it will work internally)
  • CommandHandler:This Handler class is used to handle any command sent by the user to the bot, a command always starts with "/" i.e "/start","/help" etc.
  • MessageHandler:This Handler class is used to handle any normal message sent by the user to the bot,
  • FIlters:This will filter normal text, commands, images, etc from a sent message.

Step 2: Define functions for operation

Start function:It will display the first conversation, you may name it something else but the message inside it will be sent to the user whenever they press 'start' at the very beginning.

Python3
updater=Updater("your_own_API_Token got from BotFather",use_context=True)defstart(update:Update,context:CallbackContext):update.message.reply_text("Enter the text you want to show to the user whenever they start the bot")

Basically, in the start message, you should add something like "Hello Welcome to the Bot" etc.

Help function: It is basically in this function you should add any kind of help the user might need, i.e. All the commands your bot understands, The information related to the bot, etc)

Python3
defhelp(update:Update,context:CallbackContext):update.message.reply_text("Your Message")

Adding some more functionalities to the Bot.

Python3
defgmail_url(update:Update,context:CallbackContext):update.message.reply_text("gmail link here")defyoutube_url(update:Update,context:CallbackContext):update.message.reply_text("youtube link")deflinkedIn_url(update:Update,context:CallbackContext):update.message.reply_text("Your linkedin profile url")defgeeks_url(update:Update,context:CallbackContext):update.message.reply_text("GeeksforGeeks url here")defunknown_text(update:Update,context:CallbackContext):update.message.reply_text("Sorry I can't recognize you , you said '%s'"%update.message.text)defunknown(update:Update,context:CallbackContext):update.message.reply_text("Sorry '%s' is not a valid command"%update.message.text)

Here we have added 4 functions one to open Gmail, one for youtube, one for LinkedIn, and the last one for GeeksforGeeks. These are notMANDATORY functions, you can add any kind of functions and theirreply_text as you want, these are just for demonstration. Here theunknown_text function will send the message written inside it whenever it gets some unknown messages and theunknownfunction will Filter out all the unknown commands sent by the user and reply to the message written inside it.

Step 3: Adding the Handlers to handle our messages and commands

Python3
updater.dispatcher.add_handler(CommandHandler('start',start))updater.dispatcher.add_handler(CommandHandler('youtube',youtube_url))updater.dispatcher.add_handler(CommandHandler('help',help))updater.dispatcher.add_handler(CommandHandler('linkedin',linkedIn_url))updater.dispatcher.add_handler(CommandHandler('gmail',gmail_url))updater.dispatcher.add_handler(CommandHandler('geeks',geeks_url))updater.dispatcher.add_handler(MessageHandler(Filters.text,unknown))updater.dispatcher.add_handler(MessageHandler(# Filters out unknown commandsFilters.command,unknown))# Filters out unknown messages.updater.dispatcher.add_handler(MessageHandler(Filters.text,unknown_text))

Here each line suggests that whenever a user writes a command i.e. the first parameter of the CommandHandler in reply the user gets the message written inside the function mentioned in the next parameter.

Step 4: Running the bot

Python3
updater.start_polling()

Here whenever we start polling the bot will be active and it will look for any new message sent by any of the users and if it matches the command specified there it will reply accordingly.

Below is the full implementation:

Python3
fromtelegram.ext.updaterimportUpdaterfromtelegram.updateimportUpdatefromtelegram.ext.callbackcontextimportCallbackContextfromtelegram.ext.commandhandlerimportCommandHandlerfromtelegram.ext.messagehandlerimportMessageHandlerfromtelegram.ext.filtersimportFiltersupdater=Updater("your_own_API_Token got from BotFather",use_context=True)defstart(update:Update,context:CallbackContext):update.message.reply_text("Hello sir, Welcome to the Bot.Please write\        /help to see the commands available.")defhelp(update:Update,context:CallbackContext):update.message.reply_text("""Available Commands :-    /youtube - To get the youtube URL    /linkedin - To get the LinkedIn profile URL    /gmail - To get gmail URL    /geeks - To get the GeeksforGeeks URL""")defgmail_url(update:Update,context:CallbackContext):update.message.reply_text("Your gmail link here (I am not\        giving mine one for security reasons)")defyoutube_url(update:Update,context:CallbackContext):update.message.reply_text("Youtube Link =>\    https://www.youtube.com/")deflinkedIn_url(update:Update,context:CallbackContext):update.message.reply_text("LinkedIn URL =>\        https://www.linkedin.com/in/dwaipayan-bandyopadhyay-007a/")defgeeks_url(update:Update,context:CallbackContext):update.message.reply_text("GeeksforGeeks URL => https://www.geeksforgeeks.org/")defunknown(update:Update,context:CallbackContext):update.message.reply_text("Sorry '%s' is not a valid command"%update.message.text)defunknown_text(update:Update,context:CallbackContext):update.message.reply_text("Sorry I can't recognize you , you said '%s'"%update.message.text)updater.dispatcher.add_handler(CommandHandler('start',start))updater.dispatcher.add_handler(CommandHandler('youtube',youtube_url))updater.dispatcher.add_handler(CommandHandler('help',help))updater.dispatcher.add_handler(CommandHandler('linkedin',linkedIn_url))updater.dispatcher.add_handler(CommandHandler('gmail',gmail_url))updater.dispatcher.add_handler(CommandHandler('geeks',geeks_url))updater.dispatcher.add_handler(MessageHandler(Filters.text,unknown))updater.dispatcher.add_handler(MessageHandler(Filters.command,unknown))# Filters out unknown commands# Filters out unknown messages.updater.dispatcher.add_handler(MessageHandler(Filters.text,unknown_text))updater.start_polling()

Output:


Create a Telegram Bot using Python

Similar Reads

We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood ourCookie Policy &Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences

[8]ページ先頭

©2009-2025 Movatter.jp