Wiki
Clone wikirt-n56u / RU / Отправка сообщений в Telegram
Отправка сообщений в Telegram
Общая информация
Для отправки сообщений в Telegram не нужно каких-либо внешний пакетов, всё необходимое уже есть в прошивке.
Создание бота
Начните диалог с @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=''
скрипта.
На этом настройка окончена, теперь вы можете отправлять сообщения с роутера, передав текст сообщения в качестве параметра:
/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