Как отправить сообщение в Telegram из PowerShell
Уведомления, получаемые от систем мониторинга, стали неотъемлемой частью специалистов занимающихся сопровождением информационных систем. Однако, мир не стоит на месте и все чаще появляются новые способы оповещения. К традиционным средствам оповещения о состоянии информационных систем: электронная почта и SMS добавились новые средства доставки уведомлений, такие как мессенджеры. Наибольшей популярностью, для этой цели, у системных администраторов стал мессенджер Telegram. А в системах мониторинга появилась возможность настраивать интеграцию с мессенджерами, с целью оперативной рассылки уведомлений.
Но что делать если централизованной системы мониторинга нет, или в ней нет особой необходимости, а потребность получать уведомления в Telegram есть.
Ниже описан один из способов пошаговой настройки для отправки сообщений в Telegram используя PowerShell.
1. Что такое бот и как создать своего бота Telegram
Что такое бот Telegram? Боты — это специальные аккаунты в Telegram, созданные для того, чтобы автоматически обрабатывать и отправлять сообщения. Чтобы создать своего бота, необходимо:
Например боту UserManRu_bot был присвоен токен: 819090298:AAGjXP6QLPMkem9t2LflIHOAiE_Q58bA43g
2. Создать группу в Telegram и получить ее идентификатор
Для получения идентификатора группы необходимо создать новую группу в Telegram (или использовать имеющуюся группу) и добавить туда созданного бота UserManRu_bot. А для получения идентификатор учетной записи следует отправить боту UserManRu_bot сообщение /Start и любое тестовое сообщение.
Затем необходимо проверить историю обращений которые были к боту, используя запрос ниже:
В результате мы увидим уникальный идентификатор пользователя (наш идентификатор), он нам понадобится при отправке сообщений
А также уникальный идентификатор группы
Из этого набора символов в формате JSON определяем ID пользователя, который отправил сообщение "Test": 172489755
и Id группы в которую добавили бота: -347310642
3. Сформировать строку Web запроса
Чтобы написать от имени бота пользователю и в группу telegram, необходимо 3 параметра:
Вставляем этот запрос в адресную строку браузера и переходим по ссылке. Сообщение Hello должно прийти сообщение в группу.
4. Сформировать скрипт для отправки сообщения
Чтобы сформировать и выполнить Web запрос выше, используя PowerShell, потребуется небольшой скрипт. Пример скрипта показан ниже:
Чтобы прислать сообщение не на группу, а конкретному пользователю в переменной $chat_id необходимо указать идентификатор пользователя.
5. Использование Proxy для отправки запроса
Если вы используете в своей сети прокси сервер или ваш провайдер запрещает доступ к telegram, то можно добавить к PowerShell командлету Invoke-WebRequest параметр -Proxy с указанием прокси сервера и порта, с которых разрешен доступ к Telegram. В этом случае скрипт будет иметь вид:
Но что делать если централизованной системы мониторинга нет, или в ней нет особой необходимости, а потребность получать уведомления в Telegram есть.
Ниже описан один из способов пошаговой настройки для отправки сообщений в Telegram используя PowerShell.
1. Что такое бот и как создать своего бота Telegram
Что такое бот Telegram? Боты — это специальные аккаунты в Telegram, созданные для того, чтобы автоматически обрабатывать и отправлять сообщения. Чтобы создать своего бота, необходимо:
- используя свой аккаунт Telegram написать специальному служебному боту @BotFather команду "/Start" или любое сообщение - в ответ придет список доступных команд.
- отправить команду /newbot - и ввести уникальное название бота, а затем идентификатор, который обязательно должен заканчиваться символами "bot".
Допустим наш бот будет называться UserMan.ru и иметь идентификатор UserManRu_bot.
В ответ придет уникальный token для созданного бота, который будет использоваться при отправке сообщений.Например боту UserManRu_bot был присвоен токен: 819090298:AAGjXP6QLPMkem9t2LflIHOAiE_Q58bA43g
2. Создать группу в Telegram и получить ее идентификатор
Для получения идентификатора группы необходимо создать новую группу в Telegram (или использовать имеющуюся группу) и добавить туда созданного бота UserManRu_bot. А для получения идентификатор учетной записи следует отправить боту UserManRu_bot сообщение /Start и любое тестовое сообщение.
Затем необходимо проверить историю обращений которые были к боту, используя запрос ниже:
https://api.telegram.org/bot<токен>/getUpdates
В случае с ботом UserManRu_bot это будет:https://api.telegram.org/bot819090298:AAGjXP6QLPMkem9t2LflIHOAiE_Q58bA43g/getUpdates
В результате мы увидим уникальный идентификатор пользователя (наш идентификатор), он нам понадобится при отправке сообщений
А также уникальный идентификатор группы
{"ok":true,"result":[{"update_id":146972760, "message":{"message_id":2,"from":{"id":<b>172489755</b>,"is_bot":false,"first_name":"Test","last_name":"Test","username":"mynick","language_code":"en"},"chat":{"id":172489755,"first_name":"Test","last_name":"Test","username":"mynick","type":"private"},"date":1553259454,"text":"Test"}},{"update_id":146975361, "message":{"message_id":3,"from":{"id":172489755,"is_bot":false,"first_name":"Test","last_name":"Test","username":"mynick","language_code":"en"},"chat":{"id":<b>-347310642</b>,"title":"UserMan.ru","type":"group","all_members_are_administrators":true},"date":1553257968,"group_chat_created":true}}]}
Из этого набора символов в формате JSON определяем ID пользователя, который отправил сообщение "Test": 172489755
и Id группы в которую добавили бота: -347310642
3. Сформировать строку Web запроса
Чтобы написать от имени бота пользователю и в группу telegram, необходимо 3 параметра:
- token — Уникальный идентификатор, который был получен при создании бота
- chat_id — уникальный идентификатор пользователя или группы. Он определяется запросом getUpdates
- text — текст сообщения, которое необходимо направить
https://api.telegram.org/bot<token>/sendMessage?chat_id=<chat_id>&text=<text>
Например, отправка сообщения Hello в группу с идентификатором -347310642 от имени бота UserManRu_bot будет выглядеть так:https://api.telegram.org/bot819090298:AAGjXP6QLPMkem9t2LflIHOAiE_Q58bA43g/sendMessage?chat_id=-347310642&text=Hello
Вставляем этот запрос в адресную строку браузера и переходим по ссылке. Сообщение Hello должно прийти сообщение в группу.
4. Сформировать скрипт для отправки сообщения
Чтобы сформировать и выполнить Web запрос выше, используя PowerShell, потребуется небольшой скрипт. Пример скрипта показан ниже:
$token = "819090298:AAGjXP6QLPMkem9t2LflIHOAiE_Q58bA43g"
$chat_id = "-347310642"
$text = "Hello World!"
$URI = "https://api.telegram.org/bot" + $token + "/sendMessage?chat_id=" + $chat_id + "&text=" + $text
$Request = Invoke-WebRequest -URI ($URI)
После выполнения данного скрипта на группу придет сообщение присвоенное переменной $text.Чтобы прислать сообщение не на группу, а конкретному пользователю в переменной $chat_id необходимо указать идентификатор пользователя.
ID чата всегда начинается со знака минус, а ID пользователя всегда без знака минус
5. Использование Proxy для отправки запроса
Если вы используете в своей сети прокси сервер или ваш провайдер запрещает доступ к telegram, то можно добавить к PowerShell командлету Invoke-WebRequest параметр -Proxy с указанием прокси сервера и порта, с которых разрешен доступ к Telegram. В этом случае скрипт будет иметь вид:
$token = "819090298:AAGjXP6QLPMkem9t2LflIHOAiE_Q58bA43g"
$chat_id = "-347310642"
$text = "Hello World!"
$URI = "https://api.telegram.org/bot" + $token + "/sendMessage?chat_id=" + $chat_id + "&text=" + $text
$Request = Invoke-WebRequest -URI ($URI) -Proxy "http://134.19.218.94:3128"
Где, 134.19.218.94:3128 - это один из примеров открытого прокси сервера.Похожие статьи:
03 декабрь 2021, Пятница
Как узнать дату последнего успешного резервного копирования?
11 декабрь 2020, Пятница
Телеграмм-чаты и каналы на темы IT Pro и IB Pro, поиск работы в ИТ и ИБ
25 май 2020, Понедельник
Nginx: Ограничить доступ к каталогам сайта по IP адресам
30 апрель 2019, Вторник
Отключение UAC (User Account Control) в Windows?
14 май 2018, Понедельник
Zabbix Failed opening required maintenance.inc.php
Комментарии: