Как отправить сообщение в Telegram из PHP скрипта через прокси

5 June 2018, 18:22 MSK
Я уже писал о том, как отправить сообщение из PHP в Телеграм и как сделать своего Телеграм-бота, принимающего сообщения. Тема оказалась довольно популярной, но в связи с известными событиями у некоторых пользователей всё же могут возникать трудности. Недавно мне написал один их моих читателей и пожаловался, что мой скрипт из предыдущего поста у него на хостинге не работает.
Если вы не читали предыдущий пост по теме, сначала рекомендую прочитать его: https://kirkizh.ru/2018/04/telegram-php/.
Для решения этой проблемы проще всего использовать прокси сервер. Учтите, что прокся нужна обычная (HTTP/SOCKS), не специфичная телеграмовская (MTProxy).
Итак, новый код:
<?php
// сюда нужно вписать токен вашего бота define('TELEGRAM_TOKEN', '999999999:XXXXXXXXXXXXXXXXXXXXXXXXXXXX');
// сюда нужно вписать ваш внутренний айдишник define('TELEGRAM_CHATID', '99999999');
message_to_telegram('Привет!');
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,             ),             CURLOPT_PROXY => 'host:port',             CURLOPT_PROXYUSERPWD => 'login:password',             CURLOPT_PROXYTYPE => CURLPROXY_HTTP,             CURLOPT_PROXYAUTH => CURLAUTH_BASIC,         )     );     curl_exec($ch); }
Чтобы всё заработало, вам нужно прописать настройки вашей прокси:
  • CURLOPT_PROXY — адрес и порт, например, 127.0.0.1:3128;
  • CURLOPT_PROXYUSERPWD — логин и пароль, разделённые двоеточием;
  • CURLOPT_PROXYTYPE — тип прокси, одна из следующих констант: CURLPROXY_HTTP, CURLPROXY_SOCKS4, CURLPROXY_SOCKS5, CURLPROXY_SOCKS4A или CURLPROXY_SOCKS5_HOSTNAME;
  • CURLOPT_PROXYAUTH — метод авторизации, одна из следующих констант: CURLAUTH_BASIC и CURLAUTH_NTLM.
Если вы не знаете тип прокси и/или метод авторизации, попробуйте подобрать их методом перебора.
UPD: вот список рабочих прокси на 2 сентября 2018: 5.9.253.151:1080, 5.9.253.151:1081, 5.9.253.151:1082. Логин sensey, пароль sensey.
Поделиться
Телеграмнуть
Вотсапнуть
Тэги: PHPTelegramwebdev