opened image

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

В этой статье мы обсудим, как отправлять сообщения в Telegram с помощью PowerShell. PowerShell - это оболочка командной строки и язык сценариев, разработанный Microsoft для автоматизации и управления системными задачами.

Telegram - популярный сервис мгновенного обмена сообщениями, который предоставляет API для взаимодействия с его сервисами. Это означает, что вы можете использовать PowerShell для автоматической отправки сообщений в Telegram.

 

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

 

Перед тем, как начать отправлять сообщения через PowerShell, вам нужно создать бота в Telegram. Вот шаги, которые вам нужно выполнить:

  1. Напишите @BotFather в поисковой строке Telegram. Это официальный бот для создания других ботов в Telegram.
  2. Нажмите на кнопку "Start" или "Начать", чтобы начать взаимодействие с ботом.
  3. Введите команду "/newbot" и следуйте инструкциям. Вам придется выбрать имя и имя пользователя для вашего бота.
  4. После создания бота, BotFather предоставит вам токен доступа. Этот токен будет использоваться для авторизации запросов к API Telegram.

 

 

 

PowerShell и Telegram API

 

Теперь, когда у вас есть бот и токен доступа, вы можете использовать PowerShell для отправки сообщений через Telegram API. Вот базовый пример скрипта PowerShell для отправки сообщения:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

$botToken = "Ваш токен"
$chatID = "Ваш ид чата"
$messageText = "Test massage"
$url = "https://api.telegram.org/bot$botToken/sendMessage?chat_id=$chatID&text=$messageText"

Invoke-RestMethod -Uri $url -Method Post

 

В этом примере мы используем команду PowerShell Invoke-RestMethod, чтобы отправить POST-запрос к Telegram API. $botToken - это токен доступа, который вы получили от BotFather, $chatID - это идентификатор чата, в который вы хотите отправить сообщение, а $messageText - это текст сообщения, который вы хотите отправить.

Чтобы узнать идентификатор чата, вы можете отправить боту любое сообщение, а затем перейти по адресу https://api.telegram.org/botВашТокен/getUpdates в вашем браузере. Вы увидите идентификатор чата в ответе.

 

 

Рассмотрим небольшой скрипт который будет отправлять сообщение что будет показывать работает сервер или нет.

 

Для проверки доступности сервера можно использовать команду PowerShell Test-Connection, которая аналогична команде ping в командной строке. Вот пример скрипта, который отправляет сообщение в Telegram, в зависимости от того, доступен сервер или нет:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

$botToken = "Ваш токен"
$chatID = "Ваш ид чата"
$serverIP = "IP сервера"

# Проверяем доступность сервера
if (-not (Test-Connection -ComputerName $serverIP -Count 1 -Quiet)) {
    $messageText = "Server down!."

    $url = "https://api.telegram.org/bot$botToken/sendMessage?chat_id=$chatID&text=$messageText"

    Invoke-RestMethod -Uri $url -Method Post
}

 

 

В этом примере, команда Test-Connection проверяет доступность сервера. Если сервер недоступен, то Test-Connection возвращает False, и благодаря оператору -not, условие в if становится True. Тогда скрипт отправляет сообщение "Внимание! Сервер недоступен" в Telegram. Если сервер доступен, скрипт не делает ничего.

 

 

Теперь вы можете добавить этот скрипт в планировщике, для выполнения его, например, каждые 30 мин. Как это сделать мы рассмотрим следующей статье 

 

Вывод

PowerShell и Telegram API предоставляют мощные инструменты для автоматизации обмена сообщениями. Будьте осторожны и не делитесь токеном доступа, идентификатором чата и другими конфиденциальными данными.

 

Также предлагаем рассмотреть другие полезные статьи: