На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Простой бот для телеграм на 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-запросы от имени телеграма.

Если вы живете в России то наверняка придется сделать это либо через Tor, либо через VPN или зарубежное прокси – так как наш Роскомнадзор не любит телеграм. В дальнейшем такие ухищрения будут не нужны – надо только инициализировать.

Теперь приведём код файла 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. Особенность нашего самописного скрипта в том, что он будет работать на любом, даже шаред хостинге и не потребуется установки дополнительных компонентов. Если вам требуется создание бота для телеграм – пишите мне. Не бесплатно, но недорого помогу.




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





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




Почему не работает fadeIn() вместе с html()?
Поиск вируса на сайте


© upread.ru 2013-2019
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.