Вы здесь

Отправка сообщений в telegram

Для оперативной связи с программой, запущенной на суперкомпьютере (сообщение о запуске или завершении, отладочные сообщения), можно использовать telegram.

Данная инструкция описывает создание минимального telegram-бота, который умеет отправлять сообщения хозяину.

Регистрируем бота в телеграмм

Для регистрации бота нужно начать чат с отцом ботов https://t.me/BotFather отправив в чат команду /start

Далее выбираем из меню или пишем в чат команду /newbot в ответ будет предложено ввести имя, под которым бот будет виден у вас в списке пользователей (не обязательно уникальное), и идентификатор, уникальный в рамках всего телеграма и заканчивающийся на _bot. Если идентификатор отвечает этому требованию, то в ответ BotFather пришлет сообщение, содержащее ссылку на бота и token для доступа к API.

Что бы у бота появилась возможность писать вам, вы должны перейти на страничку бота и нажать кнопку "Запустить" (Start)

Как узнать свой ID

Что бы писать себе сообщения нужно знать свой уникальный идентификатор, это можно сделать запустив бота https://t.me/getmyid_bot

Установка бота на суперкомпьютере

Для запуска бота необходимо установить пакеты python3

pip install python-telegram-bot --upgrade --user

после чего можно скопировать пример бота в файл telegram_bot.py, подставив токен api_key и свой user_id. На файл необходимо дать право на выполнение chmod +x telegram_bot.py

#!/usr/bin/env python3.6
import telegram
import sys

api_key = "987654321:XyZwer45Un"
user_id = 1234567890

bot = telegram.Bot(token=api_key)

chunk = sys.stdin.read(4096)
while chunk:
    bot.send_message(user_id, chunk)
    chunk = sys.stdin.read(4096)

Отправка сообщения делается перенаправлением текста на стандартный ввод бота. Можно отправлять несколько строк, но не более 4096 символов за один раз. Более длинные сообщения разбиваются на части по границам кратным этой величине. В примере предполагается, что вы создали файл telegram_bot.py в домашнем каталоге (~).

echo "Test message" | ~/telegram_bot.py

ls | ~/telegram_bot.py

sbatch -n1 -t1 --wrap \
    "bash -c \
         'echo Start |~/telegram_bot.py;\
         my_prog| ~/telegram_bot.py;\
         echo Stop |~/telegram_bot.py'"
Яндекс.Метрика