Send message to Telegram user using Python
Last Updated :
12 Dec, 2022
Improve
Have you ever wondered how people do automation on Telegram? You may know that Telegram has a big user base and so it is one of the preferred social media to read people. What good thing about Telegram is that it provides a bunch of API's methods, unlike Whatsapp which restricts such things. So in this post, we will be sharing how to send messages to a Telegram user using Python.
Getting Started
First, create a bot using Telegram BotFather. To create a BotFather follow the below steps as follows:
- Open the telegram app and search for @BotFather.
- Click on the start button or send "/start".
- Then send "/newbot" message to set up a name and a username.
- After setting name and username BotFather will give you an API token which is your bot token.\
Then create an app on the telegram. Follow the below steps:
- Log into the telegram core: https://my.telegram.org
- Go to ‘API development tools’ and fill out the form.
- You will get the api_id and api_hash parameters required for user authorization.
Modules needed
You need several Python library imports for the script functioning.
- telebot: To install this module type the below command in the terminal.
pip install telebot
- telethon: To install this module type the below command in the terminal.
pip install telethon
Below is the implementation.
# importing all required libraries
import telebot
from telethon.sync import TelegramClient
from telethon.tl.types import InputPeerUser, InputPeerChannel
from telethon import TelegramClient, sync, events
# get your api_id, api_hash, token
# from telegram as described above
api_id = 'API_id'
api_hash = 'API_hash'
token = 'bot token'
message = "Working..."
# your phone number
phone = 'YOUR_PHONE_NUMBER_WTH_COUNTRY_CODE'
# creating a telegram session and assigning
# it to a variable client
client = TelegramClient('session', api_id, api_hash)
# connecting and building the session
client.connect()
# in case of script ran first time it will
# ask either to input token or otp sent to
# number or sent or your telegram id
if not client.is_user_authorized():
client.send_code_request(phone)
# signing in the client
client.sign_in(phone, input('Enter the code: '))
try:
# receiver user_id and access_hash, use
# my user_id and access_hash for reference
receiver = InputPeerUser('user_id', 'user_hash')
# sending message using telegram client
client.send_message(receiver, message, parse_mode='html')
except Exception as e:
# there may be many error coming in while like peer
# error, wrong access_hash, flood_error, etc
print(e);
# disconnecting the telegram session
client.disconnect()
Code Explanation:
- The code starts by importing all the required libraries.
- The first library is telebot which is used to interact with Telegram.
- Next, we import the sync module which helps us to keep our code organized and easy to read.
- We also import the events module so that we can handle various telegram related events.
- Next, we get our API_id, API_hash, and token from Telegram as described earlier in this tutorial.
- Then, we create a variable called message for holding our message.
- We then connect to Telegram and assign the session to a variable called client .
- Next, we sign in the client using its phone number and user ID ( input('Enter the code: ')) .
- Finally, we try sending a message using the telegram client but there may be many errors coming in while trying so let's print them out for further analysis.
- Once everything is okay, we disconnect the session by calling client.disconnect() .
- The code will first import all the required libraries and set up a TelegramClient instance.
- Next, it will get your API_id, API_hash and token from Telegram.
- Finally, it will create a message variable and assign it to the client object.