Обработка событий
Для того, чтобы обработать какое-то конкретное событие от Callback API
, для него необходимо добавить обработчик.
use Fastik1\Vkfast\Api\VkApi;
use Fastik1\Vkfast\Bot\VkBot;
use Fastik1\Vkfast\Bot\Events\MessageNew;
$api = new VkApi('access_token', 5.131);
$bot = new VkBot($api);
$bot->on(MessageNew::class, function (MessageNew $event) {
// обработка события message_new
});
$bot->run(); // запуск обработки события
Также, возможно передать вместо callback-функции
массив с классом и его методом
- именно метод указанного класса и будет вызван как callback-функция
.
class Handler
{
public function messageNew(MessageNew $event)
{
// обработка события message_new
}
}
$bot->on(MessageNew::class, [Handler::class, 'messageNew']);
Важно, чтобы метод класс был публичным (public).
Событие confirmation
Как вы знаете, чтобы настроить Callback API
приложение на событие confirmation
должно вернуть специальный короткий токен, который можно найти в меню настройки Callback API
. Но как вернуть этот токен при обработке события? Очень просто. Достаточно внутри callback-функции сделать return
с необходимым string
или int
значением.
Подобно применимо к любым обработчикам, но зачастую, подобное необходимо именно для события confirmation
.
use Fastik1\Vkfast\Bot\Events\Confirmation;
class Handler
{
public function confirmation(Confirmation $event)
{
return '1d8fb851' // вернет в браузер вместо базового 'ok' эту строчку и прекратит дальнейшую обработку
}
}
$bot->on(Confirmation::class, [Handler::class, 'confirmation']);
Метод run()
run()
Именно этот метод запускает обработку ранее зарегистрированных обработчиков. Без него ничего работать не будет, т.к. мы только зарегистрировали определенные обработчики, но не запустили их обработку.
$bot->run();
// or
$bot->run($rawEvent);
Используйте метод run() только один раз в своем приложении, иначе произойдет двойная обработка одного и того же события.
Last updated