Как отправлять сообщения в Телеграмме из командной строки

Содержание
Еще по теме:  Telegram org dl что значит

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 )

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»;

Следует обратить внимание на отправляемый текст, в этом блоке разумно описать название оборудования которое будет высылать уведомления, для того чтобы настроив такое на нескольких, можно было бы различать от которого из них пришло уведомление.
Я для удобства отправляю в две строки.

так это выглядит в WinBox

Таким образом, у нас получился скрипт, который будем вызывать из последующих (так сэкономим байты памяти, да и при необходимости поправить адреса́та будет легко это сделать для всех зависимых потомков).

Теперь, ну пусть будет скрипт для уведомлений о запуске операционной системы:

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 час.

Установка планировщика через webui

Теперь, когда вдруг оборудование будет не в сети, то в клиент телеграма прилетит уведомление:

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

Для начала уже то, что получилось вроде бы хорошо.

  • 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

Рейтинг
( Пока оценок нет )
Загрузка ...