Теперь когда у нас есть свой класс для работы с API Telegram, нам нужно создать класс для обработки вебхука - по сути класс для работы нашего бота.
Делаем так: при создании класс запишем id пользователя и создаем объект бота для работы с API и выполним инициализацию. т.е. обработаем полученный вебхук. В коде будет подробное описание.
<?php
//Константа с нашим токеном
const BOT_TOKEN = '1234567890:ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
//Создание класса
class BotPhp
{
//свойство в которое запишем id пользователя
private $user_id;
//свойство класса в которое мы установим объект для работы с API
private $bot;
public function __construct()
{
//Создаем объект бота для работы API
$this->bot = new Bot(BOT_TOKEN);
//Получаем id пользователя через функцию getChatId
$this->user_id = $this->bot->getChatId();
//запускаем обработку webhook
$this->init();
}
public function init()
{
//Определяем тип получаемых данных
$type = $this->bot->getType();
if ($type == 'message') { //простой текст
$this->type_message();
} else {
$this->bot->sendApiQuery('sendMessage', [
'text' => 'Произошла ошибка, такие данные мы пока не умеем обрабатывать',
'chat_id' => $this->user_id,
]);
//прерываем работу скрипта
exit;
}
}
//получили текстовое сообщение и обработаем его
public function type_message() {
//Получаем текст сообщения
$message = $this->bot->getText();
//обрабатываем сообщение...
}
}
В следующем уроке мы соберем из этих двух классов нашего простого бота, но только на ООП.
Опубликовано: 2 декабря 2023
Автор: Семен