2) Заходим в telegram-cli, регистрируемся. По help — список комманд.
Нюансы: сначала нужно добавить контакты. Отправлять сообщения тоже можно не сразу, а только после выполнения комманды contact_list. Или запускать telegram-cli с ключем -W
Пробелы в именах при операциях с коммандами необходимо заменять на _
Например отправка сообщения:
msg Gribov _ Pavel «Привет»
3) Для получения списка контактов и их состояния, можно использовать что-то типа на PHP (требует доработки):
#!/usr/local/bin/php
* (с) 2016 Грибов Павел
* http://грибовы.рф *
* Если исходный код найден в сети — значит лицензия GPL v.3 *
* В противном случае — код собственность ГК Яртелесервис, Мультистрим, Телесервис, Телесервис плюс *
$path = «/usr/local/bin/telegram-cli» ; //где находится консольный телеграм whereis telegram-cli
function GetContacts ( ) <
global $path ;
$result = array ( ) ;
$rez = ` ( echo «contact_list» ; echo «safe_quit» ) | $path — RCW — U root | grep — v halt | grep — v «All» | grep «under» — A 100000 | grep — v «licen» ` ;
Как в телеграмме отправить видеосообщение
$res_arr = explode ( «n» , $rez ) ;
foreach ( $res_arr as $value ) <
$value = trim ( $value ) ;
$value = preg_replace ( «/[^a-zA-ZА-Яа-я0-9s]/» , «» , $value ) ;
$value = str_replace ( » » , «_» , $value ) ;
$result [ $value ] [ «name» ] = $value ;
return $result ;
function StatusInfo ( $contact_list ) <
return $contact_list ;
$contact_list = GetContacts ( ) ;
$contact_list = StatusInfo ( $contact_list ) ;
var_dump ( $contact_list ) ;
Из огромных минусов такого способа информирования — нельзя знать наверняка, получил контакт сообщение или нет. Во первых нет в API получения статуса отправленого сообщения, а во вторых — при свернутом в трей телеграмме, статус контакта будет offline. Т.е. нет уверенности, на самом деле контакт в оффлайне, или у него приложение просто свернуто. Этот огромный жирный минус перечеркивает все достоинства Telegram, и соответственно использовать его для информирования например событий в Zabbix не представляется возможным
ВКонтакте ( X )
Источник: xn--90acbu5aj5f.xn--p1ai
Tutorial. Как отправлять сообщения из cli (и MikroTik ROS) в Telegram
Telegram давно уже мой основной мессенжер, и вот, решил я разобраться, как отправлять сообщения из CLI себе в клиент TG, а попутно, понял что это можно использовать и как канал уведомлений от mikrotik’ов.
Cначала создаем бота в Telegram
Далее отправляем команду на создание нового /newbot ,
Называем его как нравится, в данном примере — My CLI Bot.
Следующий вопрос: username для бота. Он должен заканчиваться на bot, и быть уникальным, для этого примера пусть будет mysuper_cli_uniq_test_bot
Как отправить сообщения с эффектом в Telegram ?
Итак, мы получили API ключ, который можно использовать дальше.
Есть потребность чтобы бот присылал сообщение не персонально, а в группу, чтобы другие участники могли видеть результаты? Организовываем! Создаем группу, добавляем туда нашего бота, добавляем туда бота RawDataBot, который нам сообщает id нашего группового чата.
В моем случае ответ от бота RawDataBot выглядел вот так:
Так, теперь мы знаем ID чата, (в моем примере: -703498699), и дальше уже добавленного бота RawDataBot можно удалить из группы, а номер чата будем использовать в следующих шагах.
Отправка сообщений из bash
Самый простой, не особо полезный вариант:
curl -s «https://api.telegram.org/bot5595649065:AAHFJIBbd4a3c1a0cb3a98bjydfgbM1usj3g/sendMessage?chat_id=-703498699
Слегка изменим вариант:
curl -s -X POST https://api.telegram.org/bot5595649065:AAHFJIBbd4a3c1a0cb3a98bjydfgbM1usj3g/sendMessage -d chat_id=-703498699 -d text=»кое что уже более-менее полезное»
Отправка файла:
Надо либо использовать абсолютный путь, либо относительно текущего каталога, ( ~ не принимается).
Ещё удобнее, если добавить функции в shell.rc файл
Можно ещё упростить жизнь — добавим возможность исполнять желаемое в shell.rc файл (в моем случае это ~/.zshrc, в bash почти так же)
открываем ~/.bashrc (или ~/.zshrc) и добавляем туда вот это:
После этого в консоли перечитываем rc файл (или открываем новую консоль)
source ~/.bashrc
И в итоге можно отправлять сообщения по типу такого:
msg2tg «проверка отправки сообщения из консоли»
msg2tg «`uptime`»
или даже, как например:
msg2tg «`echo «1 BTC = $(curl -s ‘https://api.binance.com/api/v1/ticker/price?symbol=BTCUSDT’ | cut -d: -f3 | sed ‘s/»//g; s/>//g’) USDT (Binance)»`»
> /dev/null 2>5595649065:AAHFJIBbd4a3c1a0cb3a98bjydfgbM1usj3g» ID=»-703498699″ URL=»https://api.telegram.org/bot$TOKEN/sendMessage» #end of Telegram section MSG=»MyServer send hello after start» curl -s -X POST $URL -d chat_id=$ID -d text=»$(echo «$MSG»)» > /dev/null 2> Scripts, создаем новый, назовем его например msg2tg
do < :global text4tg :local telegramBotToken «5595649065:AAHFJIBbd4a3c1a0cb3a98bjydfgbM1usj3g»; :local destination «-703498699»; :local requestUrl «https://api.telegram.org/bot$telegramBotToken/sendMessage»; # Тут указывается текст, который будет отправляться. :local httpData «»; /tool fetch url=$requestUrl http-data=$httpData http-header-field=content-type:application/json http-method=post keep-result=no > on-error= < /log info «msg2tg finished with error»; >/log info «script for sending msg to tg is finished»;
Следует обратить внимание на отправляемый текст, в этом блоке разумно описать название оборудования которое будет высылать уведомления, для того чтобы настроив такое на нескольких, можно было бы различать от которого из них пришло уведомление.
Я для удобства отправляю в две строки.
Таким образом, у нас получился скрипт, который будем вызывать из последующих (так сэкономим байты памяти, да и при необходимости поправить адреса́та будет легко это сделать для всех зависимых потомков).
Теперь, ну пусть будет скрипт для уведомлений о запуске операционной системы:
delay 20; < :put [global text4tg «HELLO after START «]; /system script run msg2tg; >
Задержка в начале нужна, чтобы соединения с интернетом уже поднялись, и только уже после этого выполнять отправку сообщения.
И ещё один скрипт, например, для мониторинга за доступностью оборудования:
:local ipcamGates «192.168.1.100»; :if ([/ping $ipcamGates interval=5 count=3] <=0) do=< delay 180; :if ([/ping $ipcamGates interval=5 count=6] <=0) do=< delay 300; :if ([/ping $ipcamGates interval=5 count=10] <=0) do=< /log warning «IP-Cam to Gates is not available»; :put [global text4tg «$ipcamGates in not available for more than 5 minutes «]; /system script run msg2tg; >> >; :local ipcamGarden «192.168.1.101»; :if ([/ping $ipcamGar interval=5 count=3] <=0) do=< delay 180; :if ([/ping $ipcamGar interval=5 count=6] <=0) do=< delay 300; :if ([/ping $ipcamGar interval=5 count=10] <=0) do=< /log warning «IP-Cam to Gar is not available»; :put [global text4tg «$ipcamGar not available for more than 5 minutes «]; /system script run msg2tg; >>; >; /log info «script for checking available of IP-Cams is finished»;
А теперь настроим планировщик. Переходим System -> Scheduler, и создаем новое задание
msg2tg_after_start_plan, где в поле » On Event » прописываем название созданного скрипта, как это выше было — msg2tg_after_start.rsc , время запуска ( Start Time ), для этого скрипта указываем Startup , а интервал будет равен 0 , таким образом оно будет запускаться лишь единожды, после старта системы.Второй план для планировщика, это проверка доступности оборудования, для него мы так же создаем новую запись, где в поле On Event указываем правильное название для скрипта, а интервал запуска настраиваем например на 1 час.
Теперь, когда вдруг оборудование будет не в сети, то в клиент телеграма прилетит уведомление:
Для начала уже то, что получилось вроде бы хорошо.
- mikrotik telegram
- mikrotik script
- bash
Источник: habr.com
TelegramBot — шлём мессаги через Telegram
Cкрипт на AutoIt для отправки сообщений через Bot-a в Telegram
Позволяет, имея зарегистрированного Телеграм Бота (нужен токен и id чата), отправлять сообщения ботом прямо из командной строки.
Размер программы меньше 852Kb. В системе может оставлять только файл настроек %Tempr%~tgbot.tmp
В обращении очень прост.
Использует несколько параметров командной строки /h, /s, /d, /m
- TelegbamBot_v2.exe /h — вывод помощи в консоль (на английском)
- TelegbamBot_v2.exe /s token chat_id — записывает токен и id чата во временный файл для дальнейшего использования, файл записывается в каталог темп и содержит в открытом виде ваши token и chat_id, поэтому позаботьтесь о его удалении командой /d
- TelegbamBot_v2.exe /d — удаляет данные записанные параметром /s
- TelegbamBot_v2.exe /m token chat_id message — отправляет сообщение используя только данные коммандной строки. если в сообщении присутствуют пробелы — то все сообщение ОБЯЗАТЕЛЬНО поместить в кавычки: TelegbamBot_v2.exe /m 328765:ldbflshdgblb 8374658 «ваше сообщение»
- TelegbamBot_v2.exe message — отправляет сообщение message используя, заранее сохраненные командой /s, token и chat_id
Можно легко сделать различные уведомления от программ, служб, сообщения от систем аудита и т.п.
Собственно сам код AutoIt
В архиве файл исходника на AutoIt и скомпилированный консольный бинарный (.exe) под x86
TelegramBot_v2.zip version=2.0.0.21 from Yandex.Disk
______________________________________________________________________
UPD. 15-12-2017
программа обновлена до версии 2.0.0.21
Что изменено:
1.Полностью переписан способ передачи в программу token-a и chat_id
2.Программа переделана в консольную версию. Убраны все GUI сообщения.Как зарегистрировать своего бота и получить token и chat_id
<«ok»:true,»result»:[<«update_id»:485763969, «message»:<«message_id»:1,»from»:<«id»:376718569,»is_bot»:false,»first_name»:»u041fu043eu043au0430u043bu044cu043du0435u0442u043eu0432″,»last_name»:»u041fu0430u0432u0435u043b»,»username»:»RedXes»,»language_code»:»en»>,»chat»:,»date»:1513335210,»text»:»/start»,»entities»:[]>>]>
В итоге мы получили:
token = 505718974:AAHYpDfIaIJNRWY1KDiMrDagP-YqsUQE6ts
chat_id = 376718569Источник: www.neo-techno.ru