Как создать Эхо Бота в Телеграм на языке 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.
Вам необходимо установить 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>
Так же можете посмотреть видео внизу.
Вот так быстро мы смогли сделать простого эхо бота, кому была полезна эта информация буду очень благодарен если пожертвуйте на развитие сайта. Спасибо!