di ikkoyeah | 2' | 10/05/2020
How-to create a Telegram Bot to send messages
In this post we will see how-to create a Telegram Bot to send messages in a Telegram chat group using the Python programming language.
BotFather: how-to create and manage the Bot
First of all we have to create the Bot on Telegram. To do that we have to use the Telegram Bot BotFather.
This Bot allows to create anew one and manage all the bots you have created in the past. You can find it in the search bar of Telegram typing “BotFather” or via direct link https://t.me/botfather.
The Bot creation
- Step 1: open BotFather
- Step 2: Click on the Bot menu (icon / near the chat box) and select the command /newbot
- Step 3: Type the bot name
- Step 4: Type the Bot username
- Step 5: Copy the token to access HTTP API
Setup the coding tools
We have to use a Python script to send message in a group exploting the Bot.
First of all we have to check to have Python3. If you have Ubuntu, to install Python3 we have to type in the shell:
sudo apt install python3
Now we have to check that we have the Python3 package manager pip3 installed. If you have Ubuntu, to install Python3 we have to type in the shell:
sudo apt install python3-pip
Now we have to install the library telepot. If you have Ubuntu, to install Python3 we have to type in the shell:
pip3 install telepot
The structure of the Python Code
Once we have set all the tools we can write the Python script to send the message via the Bot.
The structure of the Python code is the following:
import telepot TOKEN="xxxxxxxxxxxxxxx" chat_id="xxxxxxxxxxxxxx" bot=telepot.Bot(TOKEN) bot.sendMessage(chat_id,"Il testo del messaggio")
Let’s break up the code:
import telepot is how we include the telepot library
TOKEN is the variable where we store the TOKEN of the HTTP API access
chat_ID is the group id where you want use the bot. If you don’t now hot-to find the chat_id go to this link.
Obviously the Python code structure is very simple, but with a little modification for example you can create a bot that every defined time slot it sends the data of a sensor in a domotic system.