Простой бот для телеграм на PHP


Давайте напишем самый простой бот для телеграм на PHP и научим его отвечать на приветствие. Эту основу уже можно развивать дальше, вплоть до создания подобия искусственного интеллекта, или же (что более применимо к реальности) советника-консультанта интернет-магазина или любого другого сервиса. Демо бот из заметки - @upreadbot.

Итак, начнем с того, что в самом теграме найдем @BotFather и напишем ему /start – команда инициализации. В ответ он выдаст кучу доступных команд, нас интересует сейчас одна: /newbot. В ответ BotFather предолжит выбрать имя для нового бота. Оно должно заканчиваться на bot. Сделаем это.



В ответ получим токен (красная надпись на скриншоте). Отлично, теперь инициализируем бота. Перейдем по адресу

https://api.telegram.org/bot_token/setWebhook?url=https://upread.ru/telegram.php
Здесь адрес бота (https://upread.ru/telegram.php) – это файл PHP, на который телеграм будет слать вебхуки при новых событиях, например, при получении сообщения в чате. Адрес особо светить не надо, чтобы кто-то другой не мог вам слать POST-запросы от имени телеграма.

Теперь приведём код файла telegram.php

$token = "токен";
$postData = file_get_contents('php://input');
$data = json_decode($postData, true);

$mess = $data['message']['text'];
$chat_id = $data['message']['chat']['id'];

$otvet = "Простите, не понимаю. Сформулируйте, пожалуйста, запрос поточнее.";

$findme1 = "привет";
$findme2 = "хай";
$findme3 = "здравствуйте";
$findme4 = "здрасте";

if ((mb_stripos($mess, $findme1)!== false) || (mb_stripos($mess, $findme2)!== false) || (mb_stripos($mess, $findme3)!== false) || (mb_stripos($mess, $findme4)!== false))
	
$otvet = "Здравствуйте! Что вы хотите узнать о компании UpRead.Ru?";

$response = array(
	'chat_id' => $chat_id,
	'text' => $otvet
);	
		
$ch = curl_init('https://api.telegram.org/bot' . $token . '/sendMessage');  
curl_setopt($ch, CURLOPT_POST, 1);  
curl_setopt($ch, CURLOPT_POSTFIELDS, $response);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_exec($ch);
curl_close($ch);
Теперь если кто-то напишет строку, содержащую «привет», «здравствуйте», «здрасте» или «hi», то в ответ ему прилетит фраза "Здравствуйте! Что вы хотите узнать о компании UpRead.Ru?". В любом другом случае - "Простите, не понимаю. Сформулируйте, пожалуйста, запрос поточнее.". Не слишком большой словарный запас и число реакций у нашего электронного собеседника, но это самые основы.



Адрес моего тестового робота – @upreadbot – можете сами поиграть. В дальнейшем, если будет время и желание, то я превращу его в более разговорчивого собеседника. Добавлю запоминание в базу данных и прочее.

Вот так просто можно безо всяких библиотек написать бота для телеграм на PHP. Особенность нашего самописного скрипта в том, что он будет работать на любом, даже шаред хостинге и не потребуется установки дополнительных компонентов. Если вам требуется создание бота для телеграм – пишите мне. Не бесплатно, но недорого помогу.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, php, telegram, бот




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.



4 подсказки для победы в позиции с преимуществом
Блог читающего программиста
Фасадные работы