Как отправить сообщение в Telegram с сайта WordPress


Для того, чтобы отправить сообщение с сайта в чат/канал телеграмма нам придётся взаимодействовать с API Telegram, но тут нет ничего страшного, по сути там будем использовать одни и те же параметры для запроса и пару функций PHP – urlencode() и file_get_contents().

По сути задача состоит состоит из 3-х этапов:

  1. Получить Токен бота
  2. Получить ID чата или канала в телеграмме
  3. Сформировать сообщение и отправить его

Для решения 1 и 2-й задачи достаточно просто следовать инструкциям и не нужно обладать какими-либо знаниями PHP.

1 этап – получить Токен бота

Для того, чтобы получить токен вам нужно зайти в Telegram и найти в поиске системного бота @BotFather и зайти к нему. Он единственный с синей галочкой – остальные нам не нужны

бот в чате телеграмма

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

Как создать бота в телеграмме - начало

Нас интересует команда /newbot. Дальше нужно будет ввести название бота – название можно указывать любое, а также нужно будет указать никнейм (username) бота – вот тут придётся хорошо подумать, тк сейчас уже создано очень много ботов и какой-то красивый никнейм уже может быть занят. Ещё одно важно условие при создании никнейма – в конце должно быть указано bot.

Как создать бота в телеграмме

Урааа! Первый этап благополучно завершился и мы теперь можем спокойно использовать токен нашего бота (на картинке он выделен красным).

2 этап – Получить ID чата/канала

Второй этап менее простой и требует большей внимательности.

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

Как добавить бота в чат телеграмма

Следующим шагом будет определение ID данного канала. Тут тоже ничего сложного – нужно в браузерную строку поиска вставить код, указанный ниже:

https://api.telegram.org/botТОКЕН/getUpdates

//ТОКЕН заменить на токен полученый ранее при создании бота, 
//слово bot не удаляем и никаких знаком между токеном и bot не ставим
//Пример: https://api.telegram.org/bot5282805698:AAEGoHOcWLU6zGAdwF6OI7fztzVakre84fQ/getUpdates

В результате мы получим что-то вроде такого:

Несмотря на то, что результат пустой – всё получилось. Сейчас нужно просто зайти в тот самый тестовый чат/канал и написать любое сообщение

Результат отправки тестового сообщения

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

Ура! Вот теперь мы получили ID нашего чата/канала.
Важно! что если перед ID стоит “-“, то мы его не забываем скопировать вместе с номером.

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

Всё. Теперь у нас есть вся необходимая информация для взаимодействия с API Telegram и публикации поста.

Всё что нам нужно это просто отправить запрос следующего вида

https://api.telegram.org/bot5282805698:AAEGoHOcWLU6zGAdwF6OI7fztzVakre84fQ/sendMessage?chat_id=-1001565978363&text=new%20text
//Выведет сообщение в чате telegram -  new text
//%20 - это url код для замены пробела

По сути всё, с этим можно уже работать, но не всегда результат будет тот что надо, так как есть некоторые правила на символы в url строке, которые обязательно нужно соблюдать – вот тут нам и пригодится функция urlencode(), которая кодирует текстовую строку в пригодную для использования в url. Плюс, чтобы не отправлять всякими странными путями запросы мы будем использовать функцию file_get_contents(). Пример кода ниже:

$bot_token = '5282805698:AAEGoHOcWLU6zGAdwF6OI7fztzVakre84fQ';
$chat_id = '-1001565978363';
$message = 'new text for chat';
$url = 'https://api.telegram.org/bot' . $bot_token . '/sendMessage?chat_id=' . $chat_id . '&text=' . $message;

file_get_contents( $url );

//Выведет сообщение в чате -  new text for chat

Ура! Мы отправили сообщение в чат телеграмм используя код PHP и всего 2 функции.

Результат отправки сообщения в чат телеграмма

Бонус

Если вы захотите передавать с Telegram чат изображение или сообщение в котором захотите сделать отступы или выделить жирным какой элемент текста, то можете посмотреть как это сделать здесь.