Как отправить через php сообщение в telegram
Перейти к содержимому

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

  • автор:

Отправка письма в telegram

Подскажите, кто нибудь сталкивался в отправкой письма с помощью php в телеграмм конкретному статичному пользователю?

Намекните хоть как идти? API у них чет не особое.

Сначала сюда (на англ.). Описано что такое боты, зачем и как написать.

Затем следуете инструкции:

  1. в Телеграме начните диалог с ботом BotFather – командой /newbot создадите нового бота и получите для него токен; для вашего бота одним из двух способов:
    • сами периодически запрашиваете обновления у Телеграма для вашего бота («Эй, есть новые сообщения?»);
    • указываете Телеграму URL, по которому тот сам будет к вам стучать, как только получит сообщение для вашего бота.
  2. Получив сообщение от пользователя, вы можете в ответ отправить, документ, картинку, видео, ещё много, чего, или просто сообщение.

Я пока такой простенький метод написал для вызова методов API Telegram:

Например, уже получив сообщение $data , можно на него ответить примерно так:

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

Отправка сообщений в Telegram из PHP-скриптов

Отправка сообщений в Telegram из PHP-скриптов

Достаточно долгое время у меня были настроены уведомления с сайта на ICQ, это было очень удобно. Потом что-то изменилось в протоколе авторизации мессенджера, уведомления перестали приходить, разбираться с этим мне было лениво, в результате последние пару лет я жил без оперативного информирования. Решив исправить эту ситуацию, я начал искать альтернативы из числа мессенджеров, которыми постоянно пользуюсь. Viber отпал из-за сложностей регистрации бот-аккаунтов, остался Telegram. Вот на нем я и сделал своего информационного бота для сайта.

Первым делом надо зарегистрировать бота. Для этого надо зайти в приложение Telegram и открыть чат с @BotFather. Откроется список команд, где надо выбрать /newbot. Затем система попросит выбрать название бота и его имя, по которому бот будет доступен для поиска. Если к названию особых требований нет, то имя должно обязательно быть уникальным и заканчиваться на «bot».

Регистрируем бота

Регистрируем бота

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

Получаем токен

Получаем токен

Когда все основные параметры будут введены, система выдаст вам персональный токен, с помощью которого можно будет работать с ботом через HTTP-запросы. Никому не передавайте этот токен, чтобы никто посторонний не получил к нему доступ. Если все же произошла утечка данных, то через @BotFather можно сгенерировать новый токен для вашего бота.

Если в настройках бота включен режим приватности (а он включен по умолчанию), то все сообщения, отправляемые ботом конкретному пользователю, не будут видны остальным подписчикам этого бота. Именно это нам и надо, ведь мы же не хотим, чтобы кто-то, случайно подписавшись на нашего бота, перехватывал все наши уведомления. Чтобы бот отправлял сообщения только нам, надо узнать идентификатор нашего чата.

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

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

Для этого подпишитесь на своего бота и отправьте ему любое сообщение. После этого в браузере надо сформировать ссылку следующего вида:

https://api.telegram.org/bot [token] /getUpdates
где [token] — это токен, полученный при регистрации бота. Например, для нашего бота ссылка будет вот такой:

https://api.telegram.org/bot 629705209:AAFhFqFbhR3VHHrOgOM7R4OnQT-usqJwTBk /getUpdates

Если все сделано правильно, то в браузере откроется что-то подобное:

{»ok»:true,»result»:[
{
«update_id»:434540657,
«message»:{
«message_id»:3,
«from»:{
«id»: 698237240 ,
«is_bot»:false,
«first_name»:»Dmitry»,
«language_code»:»ru»
},
«chat»:{
«id»: 698237240 ,
«first_name»:»Dmitry»,
«type»:»private»
},
«date»:1536053889,
«text»:»Hello»
}
}
]}

Красным цветом выделен нужный нам идентификатор чата. Если ответ пустой, то напишите боту еще парочку сообщений в чат и сразу же обновите страницу в браузере. В связи с недавними событиями по неудачной блокировке Telegram недоумками из Роскомнадзора, сайт api.telegram.org у некоторых провайдеров может оказаться недоступен. В этом случае придется воспользоваться Tor Browser или каким-нибудь другим инструментом для обхода блокировок.

Теперь переходим к самому интересному — отправке сообщений из скрипта в наш чат. Для этого в API Telegram есть метод sendMessage. Он принимает как GET, так и POST запросы. Обязательными параметрами являются chat_id — идентификатор чата и text — текст сообщения. Пример вызова будет таким:

  1. // Токен бота и идентификатор чата
  2. $token = ‘629705209:AAFhFqFbhR3VHHrOgOM7R4OnQT-usqJwTBk’ ;
  3. $chat_id = ‘698237240’ ;
  4. // Текст сообщения
  5. $text = ‘Привет, мир!’ ;
  6. // Отправить сообщение
  7. $ch = curl_init ();
  8. curl_setopt ( $ch , CURLOPT_URL ,
  9. ‘https://api.telegram.org/bot’ . $token . ‘/sendMessage’ );
  10. curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , true );
  11. curl_setopt ( $ch , CURLOPT_HEADER , false );
  12. curl_setopt ( $ch , CURLOPT_SSL_VERIFYPEER , false );
  13. curl_setopt ( $ch , CURLOPT_POST , true );
  14. curl_setopt ( $ch , CURLOPT_POSTFIELDS ,
  15. ‘chat_id=’ . $chat_id . ‘&text=’ . urlencode ( $text ));
  16. curl_setopt ( $ch , CURLOPT_CONNECTTIMEOUT , 10 );
  17. // Настройки прокси, если это необходимо
  18. $proxy = ‘111.222.222.111:8080’ ;
  19. $auth = ‘login:password’ ;
  20. curl_setopt ( $ch , CURLOPT_HTTPPROXYTUNNEL , 1 );
  21. curl_setopt ( $ch , CURLOPT_PROXY , $proxy );
  22. curl_setopt ( $ch , CURLOPT_PROXYUSERPWD , $auth );
  23. // Отправить сообщение
  24. $result = curl_exec ( $ch );
  25. curl_close ( $ch );

Поскольку объем текста сообщения может быть значительным, я использую отправку через POST. Опять же по причине блокировок может получиться так, что ваш хостинг-провайдер или один из промежуточных узлов раздвинул булки перед Роскомнадзором и не пропускает прямые запросы к API Telergam. В этом случае придется воспользоваться каким-нибудь забугорным прокси-сервером. Лично я для своих нужд прикупил за малую денежку один прокси. В качестве проверенного сервиса могу порекомендовать Proxy.Market.

Если вы вдруг закрыли чат с информационным ботом, то идентификатор чата придется получать заново. И, соответственно, прописать его в настройках. Это же касается и токена, при его изменении надо будет внести изменения и в скрипты.

Как видите, ничего сложного. Конечно, возможности API Telegram не ограничиваются только информированием, вы можете сделать, например, обратную связь и управлять функциями сайта прямо с телефона. Для моих задач это пока не нужно, но в будущем что-нибудь подобное я наверняка реализую.

Как отправить сообщение в Telegram канал с помощью PHP?

Как отправить сообщение в Telegram канал с помощью PHP?

Мессенджеры прочно вошли в нашу жизнь. С помощью них не просто общаются, но и создают целые бизнесы. Ну в рамках данной статьи до полноценного бизнеса далековато, поэтому сегодня я хочу Вам показать, как можно отправить сообщение в Telegram канал, с помощью PHP, например с собственного сайта.

Где это может быть полезно? Например, в разделе обратной связи данные из формы могут отсылаться не только на почту, но и в канал. А так как смартфон у нас практически всегда под рукой, то и сообщение можно увидеть намного быстрее и удобнее.

Или например, можно сделать систему уведомлений об ошибках на сайте. Если на сайте произойдет ошибка, вы сможете сразу увидеть ее и предпринять меры. Причем в сообщении может содержаться очень подробная информация.

Еще пример, ежедневная статистика посещаемости — в конце дня статистика по посещениям формируется на стороне сайта и отсылается Вам в канал.

В общем, придумать можно очень много всего — зависит от вашей фантазии и потребностей.

Теперь непосредственно сам алгоритм действий:

  1. Создаем канал Telegram
  2. Создаем бота Telegram
  3. Даем боту полномочия администратора в созданном канале

После, того как Вы выполнили все эти шаги, вы сможете отправлять сообщения в канал с помощью простых http-запросов:

  • % — это секретный ключ, который создается отцом всех ботов BotFather при создании бота
  • % — название вашего канала
  • % — текст сообщения

$botApiToken = ''; // токен бота

$resp = file_get_contents(«https://api.telegram.org/bot<$botApiToken>/sendMessage?» . http_build_query($data) );

Советую поэкспериментировать с переменной $resp, посмотреть какие ответы он возвращает, когда все хорошо и когда есть ошибка.

Вот так просто можно отправлять сообщения в Telegram канал с помощью PHP.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

Комментарии ( 4 ):

'chat_id' => '', // название канала — в формате @my-channel-name

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *