Создание бота для Telegram

Не секрет, что в довольно популярном приложении Telegram, можно создавать своих Ботов и при помощи них организовывать общение с другими пользователями Telegram. Конкретные случаи использования своих ботов могут быть различными. В моем случае это автоматическое создание тикетов, при обращении клиентов в нашу организацию. Все бы ни чего, а вот хороших мануалов, где можно получить пошаговую инструкцию по созданию Ботов не так много. Поэтому, сейчас, мы с вами разберем все по пунктам.

В самом начале надо определиться как мы будем работать с Telegram. Есть два способа: первый — создать бота, привязать к нему свой скрипт и «дергать» скрипт по крону на своем хостинге/сервере, а второй — организовать работу скрипта через Webhook. Второй способ намного удобнее. Нам не надо вешать скрипт на крон. Как только пользователь что-то написал нашему боту, то ответ, от него, не заставит себя долго ждать, сразу придет ответ. Вот именно этот способ мы и рассмотрим и будем выполнять все по очереди. Правда, есть ограничение по работе с вебхуками: работа должна быть по защищенному протоколу, то есть https (ваш скрипт должен иметь такой url: https://site.ru/script.php).

Необходимо создать самого бота.

Для этого ставим приложение Telegram из Google Play (если не установлен). Находим через поиск, в Телеграме, бота по такому имени: @BotFather .

Это главный Бот Телеграма, при помощи которого мы будем создавать своего Бота. В начале можно ознакомиться какие команды можно отправлять в @BotFather. Для этого передадим такое сообщение: /help (именно со знаком «/»). В ответ получим список со всеми командами, которые бот может принять от нас. Нас интересует одна из первых команд: /newbot — create a new bot. Как видим из объяснения, что данная команда нужна для создания своего бота в Telegram. Вот ее и отправляем в @BotFather.  В ответ получим вот такое сообщение:

Бот услышал нас и предлагает ввести название вашего нового бота, по которому, в дальнейшем, ваши пользователи будут его находить. Введем «VeryGoodNewbot». Обратите внимание, что имя у бота, обязательно, должно закончиться на «bot» (не обязательно с маленькой буквы, можно и с большой). Это условие Telegram. Получим ответ вот такого вида:

Прекрасно. Теперь у вас есть свой бот. В полученном сообщении есть такие строки:

Use this token to access the HTTP API:
332241635:AAFPk7kLf7TyEcsMpg8w1xlOE371QN4k-kA

Это важная строка. Именно с этим кодом (token) Telegram будет определять, что это именно ваш скрипт к нему обращается, а не кто-то другой. Данный token надо сохранить себе и ни кому его не сообщать.

Подключаем свой скрипт к Telegram.

Что бы подключить свой скрипт, нам надо отправить в Telegram определенный запрос. Делать мы это будем при помощи PHP-скрипта. Кто-то работает напрямую, через консоль, а мы будем делать так. Как ранее говорилось, вебхуки работают только по защищенному протоколу, поэтому у вас должен быть абсолютный путь к файлу сертификата. Как пример:

/usr/home/user/data/cert/certificate.crt

То есть, полный путь, где сертификат лежит у вас на сервере. Если вы не сами получали сертификат, то обратитесь к администратору сервера/хостинга, он вам подскажет. А вот как получать сертификаты на защищенное соединение, тут мы рассматривать не будем. Возможно, в дальнейшем, напишем отдельный мануал по этому поводу.

Для упрощения вашей работы, прилагаем скрипт, который включит для вас вебхуки.

function regHandler($cert, $token, $murl)
{
$url = «https://api.telegram.org/bot» . $token . «/setWebhook»;
$ch = curl_init();
$optArray = array(
CURLOPT_URL => $url,
CURLOPT_POST => true,
//CURLOPT_SAFE_UPLOAD => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_POSTFIELDS => array(‘url’ => $murl, ‘certificate’ => realpath($cert))
);
curl_setopt_array($ch, $optArray);

$result = curl_exec($ch);
echo «<pre>»;
print_r($result);
echo «</pre>»;
curl_close($ch);
}

$token = ‘332241635:AAFPk7kLf7TyEcsMpg8w1xlOE371QN4k-kA’;
$path = ‘/usr/home/user/data/cert/certificate.crt’;
$handlerurl = ‘https://site.ru/telegram/VeryGoodNewbot.php’;

regHandler($path, $token, $handlerurl);

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

$token = ‘—свой токен—‘;
$path = ‘/—свой путь к сертификату—/certificate.crt’;
$handlerurl = ‘https://site.ru/telegram/VeryGoodNewbot.php’; — а это сам скрипт, который будет общаться с телеграмом

После этого открываете этот файл в браузере и вы должны получить такой ответ:

{«ok»:true,»result»:true,»description»:»Webhook was set»}

Вот и все. Теперь пишем в файле VeryGoodNewbot.php свой скрипт, для ваших нужд и радуемся жизни )))

Как авторизировать вебхук привязанному боту в телеграмм. 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *