Отправляем себе в telegram уведомления с сайта

SAVAGE

SAVAGE

Команда форума
Админ
587
1 523
Простейшая инструкция по отправке сообщений себе в телеграмм с вашего сайта. Например это может быть пополнение баланса на сайте. Запрос на вывод средств, сбор заявок, отправка формы и многое другое.
  1. Открываем в телеге @BotFather
  2. /start
  3. Создаем нового бота /newbot
  4. Пишем название бота (Пополнения/Заявки и тд)
  5. После успешного создания получаем API token который потребуется дальше
Как это выглядит смотрите скриншот:
1665152804167
Следующее что Вам нужно узнать это Ваш ID в телеграмм, для этого:
  1. Открываем в телеграмме бота @getmyid_bot
  2. /start
  3. Получаем Your user ID: 435774151 (который вам еще потребуется).
Как это выглядит на скриншоте:
1665153098162
Следующий шаг - проверка, для этого:
Имея все необходимые данные, заполняем строку по образцу:
https://api.telegram.org/bot"APItoken"/sendMessage?chat_id="Ваш ID"&text=сообщение");
Должно получится так:
Получившийся результат копируем в браузер после чего переходим, если все заполнено верно то Вам придет сообщение в телеграмм с текстом "Проверка"

Теперь чтобы отправлять сообщения непосредственно с сайта Вам нужно добавить код в нужном месте (обычно это после отправки формы)
PHP:
file_get_contents("https://api.telegram.org/bot475268552:AAEZV4o27Wd2m6BhhLzvsbx1DOcXnKg3HHc/sendMessage?chat_id=425374155&text=Проверка");
Так же можно модифицировать код используя переменные, например:
PHP:
$messege = "Пополнение/Новая заявка на сайте";
file_get_contents("https://api.telegram.org/bot475268552:AAEZV4o27Wd2m6BhhLzvsbx1DOcXnKg3HHc/sendMessage?chat_id=425374155&text=$messege");

Примеры применения в скриптах:​

Открываем файл payeer.php
После:
PHP:
echo $_POST['m_orderid']."|success";// Успешно
Добавляем:
PHP:
$messege = "Пополнение на $sum Руб";
file_get_contents("https://api.telegram.org/bot5728131335:AAEzLng17P3klTCiBq-MdVAsRMf7ld1Pixw/sendMessage?chat_id=661992371&text=$messege");
Открываем файл payeer_merchant.php
После:
PHP:
echo $_POST['m_orderid']."|success";
Добавляем
PHP:
$messege = "Пополнение на $ik_payment_amount Руб";
file_get_contents("https://api.telegram.org/bot5728131335:AAEzLng17P3klTCiBq-MdVAsRMf7ld1Pixw/sendMessage?chat_id=661992371&text=$messege");
Пример для payeer
Открываем файл modules\pay\payeer.php
После:
PHP:
echo $_POST['m_orderid'].'|success';
Добавить:
PHP:
$messege = "Пополнение на $get_sum_basket['sum'] Руб";
file_get_contents("https://api.telegram.org/bot5728131335:AAEzLng17P3klTCiBq-MdVAsRMf7ld1Pixw/sendMessage?chat_id=661992371&text=$messege");
 
M

Myname

Premium
26
2
Спасибо, довольно полезная информация! В будущем пригодится (y)
 
Evgeniy

Evgeniy

Забанен
5
0
Пользователь был заблокирован за нарушение правил.
Протестю Обезательно!:cool:
 
niko33

niko33

Premium
11
6
Отличная идея, и удобно +++ и реализация простая (y)
Так можно подумать и по поводу телеграм админ бота) что бы каждый раз не ходить в админку)
 
okop

okop

Пользователь
50
14
Запутался и не понял как делать можешь видео снять и выложить! Скрипт не плохой.
 
B

bshean

Пользователь
9
0
оо,полезная вещь,спасибо
 
agent44007

agent44007

Пользователь
5
0
кто уже тестиЛ?
Сообщения были объединены:

кто уже ставил работает?
 
Последнее редактирование:
Biznessolution

Biznessolution

Seller
6
2
С вашего позволения, я бы немного расширил функционал. Можно передавать больше информации, а точнее не ограниченное количество. Но реализация не в одну строку. Те кто далек от PHP, им будет сложновато внедрить это в движок. Но надеюсь админ сможет придумать где это можно использовать, так как он в исходном коде движка форума шарит. И так:

Для реализации передачи данных нам понадобится написать функцию, которая будет отправлять данные
PHP:
public function send_request($method, $params = [])
{
    $url = 'https://api.telegram.org/bot' . '2791725418:AAGZqRtSgR-k6ecWC798wALCsFLa22xjKcF9/' . $method;

    if (!empty($params)) {
        $url = $url . '?' . http_build_query($params);
    }

    return json_decode(file_get_contents($url, false, stream_context_create(['http' => ['ignore_errors' => true]])));
}

Можем получить ip пользователя на случай, если нужно будет его заблокировать
PHP:
$ip = '';
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
   $ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
   $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (!empty($_SERVER['REMOTE_ADDR'])) {
   $ip = $_SERVER['REMOTE_ADDR'];
}

Далее, собираем нужные нам параметры, вызываем нашу функцию и передаем в нее метод отправки и сами параметры
PHP:
$user = $_SESSION['user']; // тащим пользователя (это как в качестве примера)
$amount = $_POST['amount']; // сумма пополнения
$date = date('d.m.Y в H:i:s'); // дата и время пополнения
$this->send_request('sendMessage', [
   'chat_id' => 4467608501, // id того, кому будем отправлять сообщения
   'text' => "ПОПОЛНЕНИЕ\n\nПользователь: {$user}\nСумма: {$amount}\nДата: {$date}\nIP: {$ip}",

]);

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

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

Код написан на скорую руку, саму функцию можно оптимизировать. Записать параметры в константы и сделать ее еще более короче. Но мне кажется, и так нормально.
 
Последнее редактирование:
  • Мне нравится
Реакции: SAVAGE