Telegram provides API for sending messages to users from bot. You may send messages via HTTP POST method using any programming language. I use Python and Requests library.
The URL address for sending message (require HTTP POST method):
https://api.telegram.org/bot<token_from_botfather>/sendMessage
Body of message:
{
"chat_id": 123,
"text": "Hello World!"
}
If you want to markup your message with Markdown - add parse_mode
parameter in body of JSON:
{
"chat_id": 123,
"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!')
As result we're see personal message from bot with greeting:
Now we are trying to send the document. The URL for sending message, also receives HTTP POST method:
https://api.telegram.org/bot<token_from_botfather>/sendDocument
Message body with required params:
{
"chat_id": 123,
"document": "/path/to/any/document.file",
}
Let's try with Python code:
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 on screenshot below display picture, attached as file:
Top comments (0)