Найти в Дзене

Создание Telegram-бота на PHP. Подробно и просто.

Часть 1 - Регистрация бота В последнее время в интернет-пространстве все чаще и чаще используют различных интерактивных ботов, которые позволяют делать рассылки, взаимодействовать с пользователем и предоставлять ему доступ к той или иной информации, уведомлять администратора о тех или иных событиях. В данной статье я подробно рассмотрю создание Telegram-бота посредством PHP, который сможет принимать, обрабатывать команды и отправлять ответные сообщения. Одна из задач, для которой я создавал подобного бота - это уведомление администратора интернет-магазина о поступившем заказе, а так же управление заказами непосредственно через команды, отправляемые нашему боту. На данном примере мы и будем разбирать создание бота. 1) Первое, что необходимо сделать - это зарегистрировать своего бота при помощи другого бота BotFather. Отправляем ему команду /newbot, далее вводим имя, которые Вы хотите, чтобы отображалось, а так же его адрес, который будет его идентифицировать внутри самого Telegram (долж
Оглавление

Часть 1 - Регистрация бота

В последнее время в интернет-пространстве все чаще и чаще используют различных интерактивных ботов, которые позволяют делать рассылки, взаимодействовать с пользователем и предоставлять ему доступ к той или иной информации, уведомлять администратора о тех или иных событиях.

В данной статье я подробно рассмотрю создание Telegram-бота посредством PHP, который сможет принимать, обрабатывать команды и отправлять ответные сообщения.

Одна из задач, для которой я создавал подобного бота - это уведомление администратора интернет-магазина о поступившем заказе, а так же управление заказами непосредственно через команды, отправляемые нашему боту. На данном примере мы и будем разбирать создание бота.

1) Первое, что необходимо сделать - это зарегистрировать своего бота при помощи другого бота BotFather. Отправляем ему команду /newbot, далее вводим имя, которые Вы хотите, чтобы отображалось, а так же его адрес, который будет его идентифицировать внутри самого Telegram (должен обязательно заканчиваться на слово "bot").

Регистрация нового бота через BotFather
Регистрация нового бота через BotFather

После регистрации Вам приходит API-ключ, который в дальнейшем мы будем использовать для интеграции с нашим скриптом.

Через BotFather также можно добавить описание бота, его аватарку и прочее.

2) Теперь нам нужно настроить бота, сообщив ему адрес скрипта, в котором мы будем получать все вводимые в него данные. Это делается просто: достаточно отправить GET-запрос следующего содержания:

https://api.telegram.org/bot{API-ключ}/setWebhook?url={Адрес скрипта}

В нашем случае это будет:

https://api.telegram.org/bot1383818670:AAEeszZkHXLIFdC1FmTRNzDcDfKyXhWcKjM/setWebhook?url=https://mynewbot.ru/script.php

3) Далее нам необходимо в Telegram найти нашего бота и отправить ему команду /start

Ищем нашего бота по адресу, который указали при регистрации
Ищем нашего бота по адресу, который указали при регистрации
Отправляем команду /start
Отправляем команду /start

4) Последний шаг перед написанием скрипта - Вам нужно узнать Ваш chatID - это внутренний Ваш идентификатор в Telegram. Узнать его можно с помощью бота Userinfobot.

Получение своего chatID через бота Userinfobot
Получение своего chatID через бота Userinfobot

На этом подготовительный этап завершен и можно наконец приступать к написанию самого скрипта.

Часть 2 - Отправляем уведомления

В этой части мы реализуем скрипт, позволяющий нам при поступлении заказа в интернет-магазин, автоматически отправлять уведомления в Telegram. Подробно процесс получения заказа расписывать не буду, ограничимся следующей конструкцией:

$order = $_REQUEST['order_data'];

Теперь нам нужно настроить подключение к самому боту, прописываем следующие константы:

define('TELEGRAM_TOKEN','1383818670:AAEeszZkHXLIFdC1FmTRNzDcDfKyXhWcKjM');
define('TELEGRAM_ADMIN_CHATID', '582900410');

Здесь прописаны API-ключ и chatID, которые мы получили в предыдущей части статьи.

Далее добавляем саму функцию, которая будет отправлять уведомления:

function message_to_telegram($textMessage,$replyMarkup) {
$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_ADMIN_CHATID,
'text' => $textMessage,
'reply_markup' => $replyMarkup,
),
)
);
curl_exec($ch);
}

Вы можете ее просто скопировать. В эту функцию мы передаем два параметра:

$textMessage - это текст уведомления, которое надо отправить

$replyMarkup - это массив для создания интерактивной клавиатуры (этот момент мы рассмотрим в дальнейшем, пока будем передавать пустое значение)

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

Осталось только создать текст уведомления и вызвать нашу функцию:

Скрипт отправки уведомления в Telegram
Скрипт отправки уведомления в Telegram

Это полный листинг кода. Теперь когда на данный скрипт от магазина отправляется запрос с данными нового заказа - нам будет автоматически приходить уведомление об этом.

Следующая часть будет отдельной статьей, в ней мы рассмотрим, как отправлять команды боту и обрабатывать их.