Wiki

Clone wiki

rt-n56u / RU / Отправка сообщений в Telegram

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



Общая информация

Для отправки сообщений в Telegram не нужно каких-либо внешний пакетов, всё необходимое уже есть в прошивке. 2016-07-04_10-40-17.png

Создание бота

Начните диалог с @BotFather и попросите его создать нового бота с помощью команды /newbot. @BotFather задаст два вопроса: какое имя будет у нового бота и какой у него будет ник. Имя может быть произвольным, а ник должен оканчиваться строчкой _bot.

После успешного создания бота вам будет выдан токен доступа вида 215540172:AAHGFMPdY9DkEufj-GAljzUx1MFLi7d0PLQ, он понадобится на следующем этапе.

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

Поместите в файл /etc/storage/tg_say.sh следующее содержимое:

#!/bin/sh

API_TOKEN=''
CHAT_ID=''

if [ -z "$CHAT_ID" ]; then
    echo 'Please, define CHAT_ID first! See "chat":{"id":xxxxxxx string below:'
    /usr/bin/wget -qO - https://api.telegram.org/bot$API_TOKEN/getUpdates
    exit 1
fi

MSG="<b>$(nvram get computer_name)</b>: $@"

/usr/bin/wget -qs "https://api.telegram.org/bot$API_TOKEN/sendMessage?chat_id=$CHAT_ID&parse_mode=html&text=$MSG" 2>&1

if [ $? -eq 0 ]; then
    echo 'Message sent successfully.'
else
    echo 'Error while sending message!'
    exit 1
fi

и сделайте скрипт исполняемым:

chmod +x /etc/storage/tg_say.sh

Индивидуальные настройки

Начните чат с созданным ботом в Telegram. Не удаляйте этот чат, иначе сообщения от роутера перестанут приходить.

Впишите в строчку API_TOKEN='' токен, полученный при создании бота и запустите скрипт на исполнение:

/etc/storage/tg_say.sh

В ответной строке найдите chat id и впишите в CHAT_ID='' скрипта.

На этом настройка окончена, теперь вы можете отправлять сообщения с роутера, передав текст сообщения в качестве параметра:

/etc/storage/tg_say.sh Привет!

Сообщение должно появиться в чате.

Примеры использования

Сообщение при смене IP-адреса роутера

Зайдите на страницу Персонализация > Скрипты и впишите в поле Выполнить после события WAN up/down: строчку

/etc/storage/tg_say.sh $2 is $1 with $3 IP.

Информирование о том, что кто-то подключился к VPN-серверу

Зайдите на страницу VPN сервер и приведите поле Выполнить скрипт после подключения/отключения VPN-клиента: к следующему виду:

#!/bin/sh

case "$1" in
up)
  /etc/storage/tg_say.sh Пользователь $5 подключился к PPTP-серверу, IP адрес $4 IP.
  ;;
down)
  /etc/storage/tg_say.sh Пользователь $5 отключился от PPTP-сервера.
  ;;
esac

Updated