Share this post on:

Как создать Эхо Бота в Телеграм на языке PHP ?

При создании нашего Телеграм бота нам будет необходимо работать с API. Оставлю ссылку на официальную документацию на сайте Telegram — https://core.telegram.org/bots/api.

Первое, что нужно сделать это зарегистрировать нашего бота в Bot Father @BotFather. Первое, вам нужно придумать название для вашего бота (Оно может быть любое). Второе придумать никнейм вашему боту, обязательно на конце должна быть приписка _bot. Далее BotFather пришлет вам токен созданного вами бота. Этот токен понадобится для обращения к вашему боту.

Создадим файл на хостинге bot.php. И напишем в нем вот такой простой PHP код.

<?php 

# Принимаем запрос
$data = json_decode(file_get_contents('php://input'), TRUE);// Получаем запрос от Телеграмма в формате JSON и декодирует в обычный PHP массив
file_put_contents('file.txt', '$data: '.print_r($data, 1)."\n", FILE_APPEND);// Записываем получившийся массив в файл file.txt

В данном коде мы принимаем запрос из Telegram (функция file_get_contents). Он поступает в формате JSON и чтобы преобразовать его в PHP массив мы используем функцию json_decode с вторым аргументом TRUE. Далее мы создаем файл file.txt и записываем в него данный массив (Не обязательно).

Создадим код с объявлением переменных.

# Переменные
const TOKEN = 'ВАШ ТОКЕН';//Токен
$message = $data['message']['text'];//Получаем в переменную текст сообщения от пользователя

Создаем константу TOKEN и помещаем в нее наш токен полученный из BotFather. В переменное дата хранится массив из которого мы берем текст который прислал пользователь и записываем в переменную message.

В файле file.txt Будет вот такая запись. Опять же повторюсь не обязательно создавать данный файл.

Вам необходимо установить webhook перейдя по такому адресу — https://api.telegram.org/bot*ТОКЕН*/setwebhook?url=*URL ДО ФАЙЛА СО СКРИПТАМИ.* — ЭТО ОЧЕНЬ ВАЖНО!

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

Далее необходимо сформировать массив для отправки в телеграмм. Создадим массив, который будет содержать поля — id чата и поле — текст, которое будет содержать текст отправляемого сообщения.

# Формируем массив для отправления в Telegram
$params = [
   'chat_id' => $data['message']['chat']['id'], //Id чата
   'text' => $message //Само сообщение 

];

Заметьте, что мы передаем в массив, тот текст, который нам прислал сам пользователь. Дальше нам остается сделать лишь одно действие — отправить запрос в Telegram при помощи все той же функции file_get_contents.

# Отправляем запрос в Telegram
file_get_contents('https://api.telegram.org/bot'.TOKEN.'/sendMessage?'.http_build_query($params));
//http_build_query - Генерирует URL-кодированную строку запроса из предоставленного ассоциативного (или индексного) массива.

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

<!DOCTYPE html>
<html lang="ru">
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Document</title>
</head>
<body>
<?php 

# Принимаем запрос
$data = json_decode(file_get_contents('php://input'), TRUE);// Получаем запрос от Телеграмма в формате JSON и декодирует в обычный PHP массив
file_put_contents('file.txt', '$data: '.print_r($data, 1)."\n", FILE_APPEND);// Записываем получившийся массив в файл file.txt

# Переменные
const TOKEN = 'ВАШ ТОКЕН';//Токен
$message = $data['message']['text'];//Получаем в переменную текст сообщения от пользователя

# Формируем массив для отправления в Telegram
$params = [
   'chat_id' => $data['message']['chat']['id'], //Id чата
   'text' => $message //Само сообщение 
];

# Отправляем запрос в Telegram
file_get_contents('https://api.telegram.org/bot'.TOKEN.'/sendMessage?'.http_build_query($params));
//Функция http_build_query - Генерирует URL-кодированную строку запроса из предоставленного ассоциативного (или индексного) массива.
?>
</body>
</html>
Как вы видите наш бот может повторять даже эмоджи.

Так же можете посмотреть видео внизу.

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

Share this post on:

Leave a Comment

Ваш адрес email не будет опубликован.