Простой бот для телеграм на 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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.