Comments

How to create telegram bot | python-telegram-bot setup and basics


No comments yet

How to create telegram bot | python-telegram-bot setup and basics

mohsin khan
@owner

Published on 16 Oct


1

0


How to Create a Telegram Bot Using the python-telegram-bot Library

Creating a Telegram bot is an exciting way to automate tasks, build games, or just interact with users in unique ways. With the python-telegram-bot library, building a bot becomes simpler and more straight forward. This tutorial will guide you through the process of creating your first Telegram bot using Python. 

Prerequisites

Before we start, you should have:

  1. A basic understanding of Python.
  2. Python installed on your system (preferably version 3.6 or later).
  3. A Telegram account.

Step 1: Create a New Bot on Telegram

  1. Find BotFather on Telegram. It is an official bot provided by Telegram to help you create and manage your bots.
  2. Start a chat with BotFather and use the /newbot command to create a new bot.
  3. Follow the prompts to set a name and username for your bot. Once done, BotFather will provide you with a token. Keep this token safe, as it will be used to authenticate your bot.

Step 2: Install python-telegram-bot

To interact with Telegram's API using Python, we'll use the python-telegram-bot library. Install it via pip:

Shell Command:

1pip install python-telegram-bot

Step 3: Setting Up the Basic Bot Structure

Create a new Python file (e.g., bot.py) and add the following code to get started:

main.py

1from telegram import Update
2from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
3
4TOKEN = 'YOUR_BOT_API_TOKEN_HERE'
5
6async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
7    """Sends a welcome message when the /start command is issued."""
8    await update.message.reply_text('Hello! I am your new bot. How can I help you?')
9
10if __name__ == '__main__':
11    # Create the Application instance
12    app = ApplicationBuilder().token(TOKEN).build()
13
14    # Add a CommandHandler for the /start command
15    app.add_handler(CommandHandler('start', start))
16
17    # Run the bot
18    print("Bot is running...")
19    app.run_polling()

Replace YOUR_BOT_API_TOKEN_HERE with the token you received from BotFather.

Step 4: Understanding the Code

  1. Importing Libraries: We import Update, ApplicationBuilder, CommandHandler, and ContextTypes from the telegram and telegram.ext modules.
  2. Defining the Bot Token: TOKEN is set to the bot token from BotFather.
  3. Creating a Command Handler (/start): The start function is defined to handle the /start command, which sends a welcome message to the user.
  4. Setting Up the Application: We use ApplicationBuilder to create a new bot application.
  5. Running the Bot: The bot is set up to run in polling mode, which continuously checks for new updates.

Step 5: Adding More Commands

You can easily add more commands to your bot by defining new functions and creating command handlers. Here’s an example for adding a /help command:

commands.py

1async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
2    """Sends a help message when the /help command is issued."""
3    help_text = "Here are the available commands:\n"
4    help_text += "/start - Welcome message\n"
5    help_text += "/help - List of commands"
6    await update.message.reply_text(help_text)
7
8# Add this command handler to the bot
9app.add_handler(CommandHandler('help', help_command))

Step 6: Responding to Messages

To make the bot respond to user messages, you can use the MessageHandler. Here’s how you can echo back any text message sent to the bot:

example.py

1from telegram.ext import MessageHandler, filters
2
3async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
4    """Echoes back the user's message."""
5    await update.message.reply_text(update.message.text)
6
7# Add the MessageHandler to echo text messages
8app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))

Step 7: Handling Errors

Handling errors gracefully is important. You can add an error handler like this:

errors.py

1async def error_handler(update: Update, context: ContextTypes.DEFAULT_TYPE):
2    """Log the error and send a message to the user."""
3    print(f"An error occurred: {context.error}")
4    await update.message.reply_text("An unexpected error occurred. Please try again later.")
5
6# Add the error handler to the bot
7app.add_error_handler(error_handler)

Step 8: Running the Bot

Run the script using:

shell command:

1python bot.py

You should see "Bot is running..." printed on your terminal. Your bot is now live and can respond to /start, /help, and echo back any text messages.

Step 9: Hosting Your Bot

While running the bot locally works for development, it’s recommended to host it on a cloud platform like Heroku, AWS, or DigitalOcean for production use.

Step 10: Going Further

The python-telegram-bot library offers many advanced features like:

  1. Inline queries
  2. Callback queries (for buttons)
  3. Webhook setup for faster response times
  4. Handling multimedia (images, audio, video)
  5. Conversation handling for complex flows

You can check out the official documentation for more features: python-telegram-bot Documentation

Conclusion

Creating a Telegram bot with Python is a great way to learn programming concepts and build something interactive. With the python-telegram-bot library, you can easily extend your bot’s capabilities and create sophisticated features.


1

0