Справочники, инструменты, документация

PHP: Создание и настройка Telegram бота для отправки сообщений

Напрямую скриптом отправлять сообщения в Telegram нельзя, но можно делать запросы к api ботов. Бот же в свою очередь будет делать то, что нам нужно – отправлять пользователю сообщения. Поэтому перед тем, как писать скрипт, нужно создать бота.
  1. Запустить @BotFather и получить базовый список команд для работы с ботами. Первая и самая главная — /newbot, создание нового бота. Отправьте команду /newbot в чате и программа предложит нам придумать название нашему роботу.

  2. Придумать название. Можно вписать любое имя, какое хочется. оно будет отображаться в контактах и чатах.

  3. Придумать логин. Пишем боту придуманное название и он предлагает нам выбрать для бота логин. Программа предупредит, что логин должен заканчиваться на «bot». Логин должен быть уникальным, программа не пропустит имя пользователя, если оно уже занято. А еще он должен быть написан на латинице (с цифрами и нижним подчеркиванием), содержать от 5 до 32 символов.

  4. Сохранить токен. Бот-отец пришлет вам токен вашего бота. Сохраните его в текстовом файле, например, в блокноте. Это ключ для доступа к HTTP API, с помощью которого вы будете программировать робота, получать и отправлять сообщения. Запомнить получится вряд ли, выглядит он примерно вот так:

1866782627:AAGXxTZup5z3aRfORGA9UYeQ7-ClLODQtUY 
  1. Добавить аватар, описание, приветственное сообщение. Жмем /help и получаем перечень базовых команд. Тут будут в том числе команды для изменения описания /setdescription, информации о боте /setabouttext, для загрузки аватара /setuserpic и другие.

На этом настройка бота закончена. Но остался один момент – получение id пользователя или чата телеграм, куда будут приходить уведомления. Чтобы узнать свой id можно также воспользоваться ботами, их достаточно много, например @getmyid_bot, просто запустите бота и в ответ он напишет ваш ID, выглядит он примерно вот так:

5252484540

Ну а теперь самое интересное – код отправки запроса к api. В коде добавлены подробные комментарии, должно быть все понятно.

$tg_user = '1234567890'; // id пользователя, которому отправиться сообщения
$bot_token = '1234567890:XXXXXX'; // токен бота

$text = "Первая строка сообщения <a href='https://vk-book.ru/'>со ссылкой</a> \n Вторая строка с <b>жирным</b> текстом";

// параметры, которые отправятся в api телеграмм
$params = array(
  'chat_id' => $tg_user, // id получателя сообщения
  'text' => $text, // текст сообщения
  'parse_mode' => 'HTML', // режим отображения сообщения, не обязательный параметр
);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api.telegram.org/bot' . $bot_token . '/sendMessage'); // адрес api телеграмм
curl_setopt($curl, CURLOPT_POST, true); // отправка данных методом POST
curl_setopt($curl, CURLOPT_TIMEOUT, 10); // максимальное время выполнения запроса
curl_setopt($curl, CURLOPT_POSTFIELDS, $params); // параметры запроса
$result = curl_exec($curl); // запрос к api
curl_close($curl);

var_dump(json_decode($result));

Официальное описание метода api telegram