Telegram provides API for sending messages to users as bot. You may send messages via HTTP POST method using any programming language. I use Python and Requests library.
URL address for sending message:
https://api.telegram.org/bot<token_from_botfather>/sendMessage
Body of message:
{
"chat_id": chat_id,
"text": "Hello World!"
}
If you want to markup your message with Markdown - add "parse_mode" parameter in body of JSON:
{
"chat_id": chat_id,
"text": "Hello World!",
"parse_mode": "Markdown"
}
Here steps needed for successfully complete the task:
- Find BotFather in Telegram app
- Create new bot and receive token
- Send "/start" command to bot for start conversation. Otherwise, if you don't do this, you won't receive the messages
- Write script and testing
Example of Python script:
import requests
def send_text_message(TOKEN, chat_id, message):
url = 'https://api.telegram.org/bot{}/sendMessage'.format(TOKEN)
data = {'chat_id': chat_id, 'text': message, 'parse_mode': 'Markdown'}
response = requests.post(url, data=data)
return response
send_text_message('token_from_botfather', recipient_id, 'Hello World!')
Result:
Now we are trying to send the document:
import requests
def send_document(TOKEN, chat_id, file):
url = 'https://api.telegram.org/bot{}/sendDocument'.format(TOKEN)
data = {'chat_id': chat_id}
document = open(file, 'rb')
files = {'document': document}
response = requests.post(url, data=data, files=files)
return response
send_document('token_from_botfather', recipient_id, '/path/to/any/document.file')
Result: