Deploy your apps to a supercloud in a few clicks

This Engineering Education program is supported by Section. Instantly deploy your GitHub apps, Docker containers or K8s namespaces to a supercloud.

Try It For Free

Building a Telegram Bot using Python to Generate Random Quotes

July 11, 2021

Chatbots are software applications used to conduct online chat conversations and automate customer service via text or text-to-speech. Chatbots can be utilized for things like reminders, booking of appointments, and also on social media platforms.

In this tutorial, we will build a simple Telegram bot that sends automated programming quotes to a Telegram group at intervals using Python.

Telegram is a free and open-source, cross-platform, cloud-based instant messaging (IM) software. It provides video calling and file-sharing amongst other features.


To follow along with this tutorial, you’ll need Python 3 installed on your machine and, a little understanding of Python would help the reader to follow along better.

Table of contents

  1. Setting up bot profile
  2. Coding the bot
  3. Conclusion

Setting up bot profile

To set up a new bot, we need to register our bot first before using it. That way, we get the token to access the Telegram API. If you don’t have a Telegram account, go ahead and create one here.

Click on the search icon in Telegram, then, type @botfather in the search bar.

BotFather is the official bot created by Telegram to facilitate bot creation.

BotFather Creating Bot father in Telegram

Now, click on the start button to start a conversation. You should get the following interface:

start conversation Starting conversation with Bot father

Type /start to get started.

Next, we create the bot by running /newbot command.

create Create new bot

Next, we type in our preferred name and username for the bot.

BothFather Choosing bot name

Now, we copy our access token and save it somewhere. Remember to properly secure the access token, as it serves as your bot password.

Coding the bot

We start by creating a new directory and navigate into it.

Next, we create a virtual environment.

A virtual environment allows you to create different spaces on your computer, with a different set of libraries and versions.

By creating a virtual environment, you’ll be able to separate the necessary library installation for a project, without having to install them globally.

Now, create a virtual environment env by running the command below:

python -m venv env

On creation, activate the virtual environment using the following command:

source env/bin/activate

Next, we need to create a Telegram group and add our bot as a member.

Add bot to group Add members to Bot

Next, we need to get the Chat ID, we can do this by sending this command as a message on the Telegram group:

/my_id BOT_NAME

After that, we need to open the URL below in our browser to get our chat id:

BOT_TOKEN = the token we copied earlier

This returns a JSON response, something like a python dictionary that contains our chat id.

json JSON containing Chat ID

Now, we create a new python file named and add the following lines of code in it:

import requests
import time

# list of quotes
quotes = [
    'First, solve the problem. Then, write the code. – John Johnson',
    'Experience is the name everyone gives to their mistakes. – Oscar Wilde',
    'Code is like humor. When you have to explain it, it’s bad. – Cory House',
    'Before software can be reusable it first has to be usable. – Ralph Johnson',
    'Optimism is an occupational hazard of programming: feedback is the treatment. - Kent Beck'

# loop through the quotes
for quote in quotes:
    url = '"{}"'.format(quote)
    # sends new quotes every 20seconds

Before testing the bot, we need to install the requests module using the following code:

pip install requests

Now, let’s test our bot by running our Python file in the terminal:


programming quotes Printing a quote every 20 seconds

Hurray, it works!

Let’s make our bot more interesting by connecting to an API that feeds us with random programming quotes.

We’ll be using this API, and the /random endpoint to get random quotes.

Next, we need to add the following lines of code at the top of our file

from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
import json

Now, let’s create a function that sends random quotes, by adding the following lines of code:

telegram_bot_token = "TOKEN"

updater = Updater(token=telegram_bot_token, use_context=True)
dispatcher = updater.dispatcher

def random(update, context):
    # fetch data from the api
    response = requests.get('')
    data = response.json()
    # send message, text=data['quote']) 

# linking the /random command with the function random() 
quotes_handler = CommandHandler('random', random)

Now, let’s run the file and enter /random in our Telegram group. Our bot should respond with a random quote.

random quotes Bot fetching random quote using an API


To conclude, we have learned about building Telegram bots for groups.

There is still a lot you can achieve with a Telegram bot, like connecting your bot to other APIs and hosting them on a platform like Heroku to make your bot available 24/7.

You can also check the Telegram bot documentation for more info on creating bots.

Here are some API’s you could integrate with your Telegram bot:

  1. Random dog images
  2. Open weather map
  3. Currency converter
  4. Football
  5. Yahoo Finance

Happy Coding!

Peer Review Contributions by: Srishilesh P S