Отправка письма в telegram
Подскажите, кто нибудь сталкивался в отправкой письма с помощью php в телеграмм конкретному статичному пользователю?
Намекните хоть как идти? API у них чет не особое.
Сначала сюда (на англ.). Описано что такое боты, зачем и как написать.
Затем следуете инструкции:
- в Телеграме начните диалог с ботом BotFather – командой /newbot создадите нового бота и получите для него токен; для вашего бота одним из двух способов:
- сами периодически запрашиваете обновления у Телеграма для вашего бота («Эй, есть новые сообщения?»);
- указываете Телеграму URL, по которому тот сам будет к вам стучать, как только получит сообщение для вашего бота.
- Получив сообщение от пользователя, вы можете в ответ отправить, документ, картинку, видео, ещё много, чего, или просто сообщение.
Я пока такой простенький метод написал для вызова методов API Telegram:
Например, уже получив сообщение $data , можно на него ответить примерно так:
Как отправить через php сообщение в telegram

Отправка сообщений в 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 — текст сообщения. Пример вызова будет таким:
- // Токен бота и идентификатор чата
- $token = ‘629705209:AAFhFqFbhR3VHHrOgOM7R4OnQT-usqJwTBk’ ;
- $chat_id = ‘698237240’ ;
- // Текст сообщения
- $text = ‘Привет, мир!’ ;
- // Отправить сообщение
- $ch = curl_init ();
- curl_setopt ( $ch , CURLOPT_URL ,
- ‘https://api.telegram.org/bot’ . $token . ‘/sendMessage’ );
- curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , true );
- curl_setopt ( $ch , CURLOPT_HEADER , false );
- curl_setopt ( $ch , CURLOPT_SSL_VERIFYPEER , false );
- curl_setopt ( $ch , CURLOPT_POST , true );
- curl_setopt ( $ch , CURLOPT_POSTFIELDS ,
- ‘chat_id=’ . $chat_id . ‘&text=’ . urlencode ( $text ));
- curl_setopt ( $ch , CURLOPT_CONNECTTIMEOUT , 10 );
- // Настройки прокси, если это необходимо
- $proxy = ‘111.222.222.111:8080’ ;
- $auth = ‘login:password’ ;
- curl_setopt ( $ch , CURLOPT_HTTPPROXYTUNNEL , 1 );
- curl_setopt ( $ch , CURLOPT_PROXY , $proxy );
- curl_setopt ( $ch , CURLOPT_PROXYUSERPWD , $auth );
- // Отправить сообщение
- $result = curl_exec ( $ch );
- curl_close ( $ch );
Поскольку объем текста сообщения может быть значительным, я использую отправку через POST. Опять же по причине блокировок может получиться так, что ваш хостинг-провайдер или один из промежуточных узлов раздвинул булки перед Роскомнадзором и не пропускает прямые запросы к API Telergam. В этом случае придется воспользоваться каким-нибудь забугорным прокси-сервером. Лично я для своих нужд прикупил за малую денежку один прокси. В качестве проверенного сервиса могу порекомендовать Proxy.Market.
Если вы вдруг закрыли чат с информационным ботом, то идентификатор чата придется получать заново. И, соответственно, прописать его в настройках. Это же касается и токена, при его изменении надо будет внести изменения и в скрипты.
Как видите, ничего сложного. Конечно, возможности API Telegram не ограничиваются только информированием, вы можете сделать, например, обратную связь и управлять функциями сайта прямо с телефона. Для моих задач это пока не нужно, но в будущем что-нибудь подобное я наверняка реализую.
Как отправить сообщение в Telegram канал с помощью PHP?

Мессенджеры прочно вошли в нашу жизнь. С помощью них не просто общаются, но и создают целые бизнесы. Ну в рамках данной статьи до полноценного бизнеса далековато, поэтому сегодня я хочу Вам показать, как можно отправить сообщение в Telegram канал, с помощью PHP, например с собственного сайта.
Где это может быть полезно? Например, в разделе обратной связи данные из формы могут отсылаться не только на почту, но и в канал. А так как смартфон у нас практически всегда под рукой, то и сообщение можно увидеть намного быстрее и удобнее.
Или например, можно сделать систему уведомлений об ошибках на сайте. Если на сайте произойдет ошибка, вы сможете сразу увидеть ее и предпринять меры. Причем в сообщении может содержаться очень подробная информация.
Еще пример, ежедневная статистика посещаемости — в конце дня статистика по посещениям формируется на стороне сайта и отсылается Вам в канал.
В общем, придумать можно очень много всего — зависит от вашей фантазии и потребностей.
Теперь непосредственно сам алгоритм действий:
- Создаем канал Telegram
- Создаем бота Telegram
- Даем боту полномочия администратора в созданном канале
После, того как Вы выполнили все эти шаги, вы сможете отправлять сообщения в канал с помощью простых 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