Сегодня рассмотрим создание простого чат-бота для телеграм на PHP, плюс как установить SSL-сертификат.

1. Создаем бота через https://t.me/BotFather.
/newbot
Задаем публичное имя бота
Задаем логин бота
Получаем TOKEN

2. Подготавливаем сертификат сайта в формате .pem, по сути это сборка друг за другом содержимого файлов .crt, .key и промежуточных сертификатов сервера (это важно, без промежуточных у меня сервер не проходил проверку, телеграм выдает ошибку:

"last_error_message":"SSL error {error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed}"

3. Затем для корректной работы нужно настроить Webhook у бота, чтобы принимать все ответы на свой скрипт.
Создал простой php файл который устанавливает URL и загружает сертификат в телеграм, можете его скопировать себе и сохранить на хостинг, заменив переменные $TOKEN  и $WEBHOOK_URL:

<?
$TOKEN = '1523232323:AAEcElBkndFRMyzLSgm5A12212121';
$WEBHOOK_URL = 'https://domain.ru/telegram/webhook.php';
?>
<html>
<body>

<form action="https://api.telegram.org/bot<?=$TOKEN?>/setwebhook" method="post" enctype="multipart/form-data">
    Select Certificate to upload:
    <input type="file" name="certificate" id="fileToUpload"><br>
 WEBHOOK: <input type="text" name="url"  value="<?=$WEBHOOK_URL?>"><br>
    <input type="submit" value="Установить вебхук" name="submit">
</form>


<a href="https://api.telegram.org/bot<?=$TOKEN?>/">Проверить статус</a><br/>


</body>
</html>

4. Пишем бота, который будет выполнять команды.

Share This