Теперь, когда у нас есть свой класс для работы с 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();
// Обрабатываем сообщение...
}
}
В следующем уроке мы соберем из этих двух классов нашего простого бота, но только на ООП.