June 28

Telegram-бот, который работает, пока ты отдыхаешь

Как аналитик, я часто запускаю тяжёлые SQL-скрипты. Некоторые из них выполняются долго, могут упасть, а иногда — наоборот, неожиданно быстро отрабатывают. Раньше я просто сидел и смотрел в экран. Или забывал проверить вовремя, теряя время.

Теперь всё проще — я настроил Telegram-бота, который сам шлёт мне сообщение, когда скрипт завершился. Или если вдруг он упал. Даже если я в это время на встрече, завтракаю или не у компа — уведомление приходит прямо на часы, телефон, куда угодно.

Это экономит кучу времени и реально повышает продуктивность: не нужно постоянно следить вручную, бот сам говорит, когда можно брать данные и работать дальше. А если что-то пошло не так — я узнаю об этом сразу.

И всё это делается за 5 минут на Python. Сейчас покажу, как.

Шаг №1: Создаём Telegram-бота:

1) Открываем Telegram и пишем в поиске @BotFather — это официальный бот для управления другими ботами.

2) Отправляем команду: /newbot

3) Придумываем:

  • Имя для бота: Можно любое (это имя, которое будет отображаться в чатах)
  • Username (обязательно должно заканчивается на bot, например: ssos_alert_bot)

4) Получаем в ответ токен — это строка вида: "9107281927:GvGWxBBiGTbPBvPubgWW-tBGTR-pWnuT-y1" (копируем ее без кавычек)

Шаг №2: Переходим в python:

Теперь нам нужно узнать свой chat_id, чтобы бот знал, куда писать

1) Устанавливаем библиотеку requests, если не установлена - для этого выполняем следующий код:

pip install requests

2) Пишем любое сообщение в чат боту (это нужно чтобы в следующем пункте мы нашли свое сообщение).

3) Пишем и выполняем следующий код:

Заполняем переменные своими значениями и выполняем код

import requests

TOKEN = 'ВАШ_ТОКЕН_БОТА' # здесь ваш token от бота из пункта 1.4
url = f'https://api.telegram.org/bot{TOKEN}/getUpdates'

response = requests.get(url).json()
print(response)

4) В ответе ищем кусок вида:

'chat': {'id': 4815162342, ...}

копируем этот id

Шаг №3: Отправляем себе любое сообщение:

Заполняем переменные своими значениями и выполняем код

bot_token = 'ВАШ_ТОКЕН_БОТА' # здесь ваш token от бота из пункта 1.4
chat_id = 'ВАШ_CHAT_ID' # здесь ваш chat_id из пункта 2.4
message = '✅ Скрипт завершён, можно работать!'

url = f'https://api.telegram.org/bot{bot_token}/sendMessage'

payload = {
    'chat_id': chat_id, 
    'text': message
}

requests.post(url, data=payload)

Поздравляю, если вы все сделали правильно, на этом моменте вы должны были получить свое первое сообщение от бота.