В прошлой серии я подробно написал о том как с помощью скрипта vbs отправлять сообщения в телегу. Сегодня будем делать то же самое, но немного другим способом.
Что сделал:
Задача у меня стояла таким образом: имеется некая программа, которая при наступлении определенного события может запускать другие программы или в том числе и скрипты vbs либо bat. То есть, чтобы узнать о том что это событие произошло, нужно чтобы нам приходило оповещение на телефон, и телеграм для этого очень хорошо подходит. Как уже выяснилось в прошлом посту, для этого создается бот, который правильным образом настраивается. Затем пишется скрипт vbs, который отправляет get запрос на сервер api.telegram.org, в котором прописывается что и куда отправлять. Еще раз для понимания: адрес вида https://api.telegram.org/botAAA_это_токен_бота_000/sendMessage?chat_id=тут ID чата&text= тут ваш текст (все что красное нужно поставить свое)- если вставить в браузер и перейти по нему, то вам придет сообщение от бота с текстом тут ваш текст. Чтобы не открывать браузер каждый раз, можно такую ссылку вставить в скрипт, который будет посылать этот запрос (тот самый XMLHttpRequest) на сервер телеграма, и вам снова будет приходить сообщение с вашим текстом. Собственно на этот скрипт и будет ссылаться наша программа, и при наступлении заданного события скрипт запустится и отправит нам сообщение в телеграм.
Проблема в том что телеграм в России заблокирован, и перейдя по такому адресу ничего не происходит. Подключаешься через ВПН и это начинает работать. Чтобы все это работало без ВПН нужно придумывать что-то для обхода блокировок. В прошлом посте вскользь упоминалось о том, что можно на зарубежном хостинге где телеграм не запрещен, настроить что-то типа прокси и все запросы по адресу прокси будут транслироваться на сервера телеграм. Есть и другой способ, который немного проще, который и хочу описать в этом посту.
Что сделал:
- Зарегистрировал бесплатный PHP хостинг, добавил туда новый сайт.
- На сайте создал папку send, туда закинул index.php в который добавил следующий код, взятый отсюда (немного модифицировал под свои нужды)
<?php
// bot token
define('TELEGRAM_TOKEN', 'ТОКЕН БОТА');
// chat id
define('TELEGRAM_CHATID', 'ЧАТ ID');
date_default_timezone_set('Europe/Moscow');
message_to_telegram(date("d M H:i:s").' тут текст');
function message_to_telegram($text)
{
$ch = curl_init();
curl_setopt_array(
$ch,
array(
CURLOPT_URL => 'https://api.telegram.org/bot' . TELEGRAM_TOKEN . '/sendMessage',
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_TIMEOUT => 10,
CURLOPT_POSTFIELDS => array(
'chat_id' => TELEGRAM_CHATID,
'text' => $text,
),
)
);
curl_exec($ch);
}
- Теперь проходишь по адресу своего сайта: https://mysite.myhosting.com/send и тебе снова приходит сообщение от бота с твоим текстом и временем перед ним, безо всяких подключений к VPN
- Код по вызову этого адреса в скрипте немного отличается: вместо запроса GET нужен POST - может быть это не совсем правильно, но у меня заработало так.
Set objHTTP = CreateObject("Microsoft.XMLHTTP")
Call objHTTP.Open("POST", "https://mysite.myhosting.com/send/", false)
Call objHTTP.Send
https://evilcoder.ru/telegram-bot-bez-storonnih-bibliotek/
ОтветитьУдалить