Приклад створення бота Telegram. Повідомлення з сервера в Telegram

Для початку створіть бота в Telegram за допомогою  @BotFather , від нього і будуть надсилатися повідомлення з сервера.

За допомогою бота  @MyTelegramID_bot  дізнаємося свій ID аккаунта.

Заходимо на наш сервер і створюємо файл .py. Відкриваємо його будь-яким текстовим редактором і вносимо туди код:

#!/usr/bin/python3
from urllib.parse import urlparse, urlencode
from urllib.request import urlopen
import argparse, sys
token = 'TOKEN_BOT'
id = 'ID_USER'
host = sys.argv[1]
parser = argparse.ArgumentParser()
parser.add_argument('-m', default=host, dest='MESSAGE')
namespace = parser.parse_args()
message = namespace.MESSAGE
turl = 'https://api.telegram.org/bot'
tfull = '{0}{1}/sendMessage'.format(turl, token)
tparams = urlencode({'chat_id': id, 'text': message}).encode('utf-8')
urlopen(tfull, tparams)

Або те ж саме можна написати bash-скриптом:

#!/bin/bash
ID_USER=4758987390
TOKEN_BOT=534993234:AAFKerfwp5-MyvHH8l-EbpoNKD7_EsDdvI
message=$1
curl -s -X POST "https://api.telegram.org/bot"$TOKEN_BOT"/sendMessage" -F chat_id=$ID_USER -F text="$message"

Де,
TOKEN_BOT  – токен створеного Вами бота.
ID_USER  – ID Вашого облікового запису. Він необхідний для того, щоб повідомлення бот надсилав тільки для вашого облікового запису. Інші, хто додасть бота, отримувати повідомлення не будуть.

Для початку зробіть скрипт виконуваним командою:

chmod + x file_name.py

І перевіримо, чи працює. Відправимо команду, щоб бот відписав нам просте повідомлення “Hello, world!”:

python3 file_name.py -m "Hello, world!" 

Зверніть увагу, що обов’язково потрібно вказувати опцію -m, а повідомлення повинно бути в дужках (“”).

Як можна використовувати?

Припустимо, Ви запустили на сервері команду, яка виконується досить довгий час. Можна використовувати скрипт для повідомлення про завершення команди. Наприклад:

якась_команда | python3 file_name.py -m "Виконання завершено" 

Або, щоб не писати кожен раз повний запуск команди скріпта – створимо аліас з назвою send :

alias send = 'python3 ~/file_name.py'

Де,  ~/file_name.py  – повний шлях до скрипту.

Тепер повідомлення про завершення можна буде прописати так:

якась_команда | send -m "Виконання завершено" 

Можна так само використовувати скрипт для відправки логів. Наприклад напишемо скрипт для виведення логів авторизації, apache і fail2ban :

#!/bin/bash
logs=$(echo -e "\n Auth" ; tail -n 10 /var/log/auth.log ; echo -e "\n Fail2ban" ; tail -n 10 /var/log/fail2ban.log ; echo -e "\n Apache" ; tail -n 10 /var/log/apache2/error.log)
python3 ~/file_name.py -m "$logs"

І додамо запис в cron, щоб скрипт виконувався (наприклад) кожні 30 хвилин:

crontab -e 
* / 30 * * * * /log_sent_telegram.sh

Після чого Вам бот буде надсилати кожні 30 хвилин ці логи.

Так само, можна використовувати такий же метод для перевірки доступності якогось сайту методом пінг. Скрипт виглядає так:

#!/bin/bash
IP='lexblog.org'
ping -c 1 $IP 2>/dev/null 1>/dev/null
if [ "$?" = 0 ]
then
echo "good" 
else
python3 ~/tgsend.py -m "example.tdl [not available]" 
fi

І додаєте в cron з інтервалом виконання 5 хвилин:

* / 5 * * * * ~ / ping_check.sh

Goodhoster.NET
Додати коментар