20.02.2023
itpro
PowerShell, Windows 10, Windows 11
комментариев 9
Мессенджер Telegram можно использовать как средство мгновенного оповещения о различных событиях в инфраструктуре, результатах выполнения скриптов или заданий планировщика. В этой статье мы покажем, как отправить текстовое уведомление в канал или группу Telegram с помощью PowerShell через API бота.
Укажите название бота и имя пользователя. BotFather сгенерирует для вам HTTP токен, который нужно скопировать и сохранить.
Отправляем html форму с сайта на telegram + с документом на JavaScript
Your user ID: 987654321
Для отправки сообщения в Telegram нужно указать токен бота и имя вашего пользователя (группы):
Для подключения к API Telegram нужно обязательно использовать протокол TLS 1.2. Убедитесь, что TLS 1.2 включен в вашей операционной системе Windows. PowerShell по умолчанию может использовать для подключения устаревшие протоколы SSL 3.0, TLS 1.0, или TLS 1.1. Чтобы использовать TLS 1.2 в текущей сессии, выполните команду:
Чтобы отправить сообщение в Telegram, выполните команду:
$message=»Тестовое сообщение в Telegram из PowerShell»
$Response = Invoke-RestMethod -Uri «https://api.telegram.org/bot$($Telegramtoken)/sendMessage?chat_id=$($Telegramchatid)
Вы должны получить сообщение от бота.
Чтобы сделать уведомления более наглядными и красочными, можно использовать символы emoji и HTML форматирование:
$message= $currend_data + «⚠️ Скрипт обновления Update1C завершен с ошибками»
$Response = Invoke-RestMethod -Uri «https://api.telegram.org/bot$($tg_token)/sendMessage?chat_id=$($tg_chat_id)parse_mode=html»
Рекомендую использовать редактор VS Code для работы со скриптами PowerShell.
Если в вашей сети доступ в интернет выполняется через прокси сервер, вы можете указать есть с помощью параметра -Proxy командлета Invoke-WebRequest. Для аутентификации на прокси можно использовать аргумент -ProxyCredential .
$Response = Invoke-RestMethod -Uri «https://api.telegram.org/bot$($Telegramtoken)/sendMessage?chat_id=$($Telegramchatid) –Proxy «http://192.168.31.55:3128»
В PowerShell 7.x командлет Invoke-WebRequest использует настройки прокси, заданные в переменных окружения. Подробнее об использовании прокси в PowerShell.
Скрипт отправки сообщения в телеграм можно оформить в функцию и добавить ее в файл профиля PowerShell в Windows:
function Send-Telegram [string] $Message ) $tg_token=»xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx» $tg_chat_id=»987654321″ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 $Response = Invoke-RestMethod -Uri «https://api.telegram.org/bot$($tg_token)/sendMessage?chat_id=$($tg_chat_id)parse_mode=html» return $Response >
Чтобы открыть текстовый файл с профилем PowerShell, который автоматически применяется при запуске процесса powershell.exe/pwsh.exe, выполните команду:
Теперь вы можете использовать функцию отправки сообщения в канал Telegram из любого скрипта PowerShell. Достаточно выполнить команду:
Send-Telegram «My test message»
Если в качестве основного вы используете Teams, мы также можете отправлять сообщения в канал Teams с помощью PowerShell.
Предыдущая статья Следующая статья
Читайте далее в разделе PowerShell Windows 10 Windows 11
Установка и настройка фермы Remote Desktop Services (RDS) в Windows Server
Настройка шлюза Remote Desktop Gateway на Windows Server
Как удалить/отключить браузер Microsoft Edge в Windows 10/11?
Как расширить диск (раздел) в Windows?
Источник: winitpro.ru
Блог вебмастера
создание сайтов, заработок в сети, раскрутка, программирование
Заявки с формы обратной связи в telegram
Идеальная замена обычных уведомлений на почту — это telegram. Заявка сразу прилетает в месенджер, не нужно постоянно проверять почту. Кроме того, избавляемся от проблем исходящей почты на сервере.
Часто на хостинге отключена возможность рассылки почты. Также, из-за спама могут закрыть порты на сервере. Поэтому будем использовать уведомления в телеграм!
Как настроить отправку уведомлений с сайта в телеграм на php
Создаем бота в телеграм
Для начала нам понадобится бот. Создаем его через botfather, сохраняем токен. Сложностей возникнуть не должно, инструкций много. Далее идем на сайт.
Форма обратной связи — пример
Возьмем для примера простую форму обратной связи:
Введите Ваше имя : < br > < input type = «text» placeholder = «Ваше имя» name = «call_user» > < br > < br >
Контакт для обратной связи < br >( < i >это может быть эмейл или телеграм — аккаунт < / i >) : < br > < input type = «text» placeholder = «*Email или телеграм» name = «us_contact» required > < br > < br >
* — обязательные поля .
Поля: имя (необязательно), контакт (обязательно, эмейл или телеграм) и сам текст сообщения (обязательный). Дальше нужен обработчик формы.
Напишем обработчик на php
Выкладываю код обработчика с комментариями:
$userId = ‘264121246’ ; // Id телеграм аккаунта, куда отправлять сообщения
$token = ‘101543549:AAJDsandkWEuhsd434Sd23G8’ ; // Token бота, если что — он ненастоящий 🙂
$user_name = ‘ (‘ . $_POST [ «call_user» ] . ‘)’ ; // Скобки для красоты, мне так удобнее
$user_contact = $_POST [ «us_contact» ] ; // Данные с поля «контакт пользователя»
$user_text = $_POST [ «mymes» ] ; // Текст сообщения
if ( ! empty ( $user_contact ) and ! empty ( $user_text ) ) < // Если поля «контакт» и «текст» не пусты. Дополнительная проверка при обработке формы (если будут боты слать запросы)
$msg = ‘*Заявка с сайта bdseo.ru*
‘ ; // Делаем первую строку «жирной». Переводы строки для удобства в телеграме.
$msg . = $user_contact . $user_name ; // Добавляем в текст поле «контакт» и имя
$msg . = ‘ пишет:
‘ . $user_text ; // Добавляем текст сообщения. Перевод строки опять же для удобства
file_get_contents ( ‘https://api.telegram.org/bot’ . $token . ‘/sendMessage?chat_id=’ . $userId . ‘parse_mode=markdown’ ) ; // Отправляем запрос. Разметка — markdown
echo «Спасибо, мы получили Ваше сообщение.» ; // Выводим сообщение что заявка ушла
Самое главное тут file_get_contents, через него и делаем отсылку заявку на телеграм. Если нужны дополнительные данные (ошибка или вывод «ответа» от сервера телеграм), поместите file_get_contents в переменную и выводите ее или сохраняйте в логи.
Куда это все разместить
Смотря где у Вас форма и где обработчик (куда уходят данные, action). У меня все на одной странице.
Как отправить заявку нескольким аккаунтам
Способов много. Создайте еще один file_get_contents, или массив с id аккаунтов и используйте цикл (например, foreach).
Не приходят уведомления с формы — что делать
Если это не помогло, нужно смотреть ответ после запроса.
Как заменить отправку на эмейл отправкой в телеграм
Уберите mail() с его данными и используйте file_get_contents. Адаптируйте поле с сообщением ($msg), добавьте туда все данные с формы.
Результат отправки заявки в телеграм с сайта
Вот как это примерно выглядит в телеграме:
Форма простая, обработчик тоже; «почтовые» порты на хостинге или сервере не нужны. И заявки моментально прилетают в телеграм. Удобно.
Еще интересные статьи:
- Как накрутить подписчиков telegram дешево
- Как с сайта отправить уведомление в Telegram
- Как сделать телеграм бот для получения уведомлений от Flurry SDK на python
- Как спарсить play market на php
- Ошибки при разработке telegram бота на python
Источник: bdseo.ru