В данном пакете представлена библиотека для работы с навыками/скиллами Маруси.
Для работы библиотеки требуется PHP версии не ниже 7.4.
Установить библиотеку можно с помощью composer:
composer require ilkatkov/vkmarlib_php
Для начала использования вам необходимо создать объект библиотеки:
$content = file_get_contents('php://input');
$m = new VKMarLib\Skill($content);
$content
- запрос от Маруси, представленный в виде строки JSON. В примерах передается 'php://input'
.
Далее с этим объектом можно работать, используя его методы, например, задать текст ответа при вызове вашего скилла:
$m->setText("Hello, world!");
$m->setEndSession(); // устанавливаем конец сессии
echo $m->getResponseJson(); // вывод ответа вебхука
Библиотека обновляется и на данный момент поддерживает основные методы работы с навыками Маруси:
Метод | Описание |
---|---|
setText(string $text) |
Устанавливает текст ответа |
Метод | Описание |
---|---|
getTokens() |
Возвращает распознанные слова в виде массива строк |
existInTokens(...$values) |
Возвращает true, если хотя бы одно слово из аргументов находится в nluTokens, иначе - false |
Метод | Описание |
---|---|
setTts(string $tts) |
Устанавливает TTS ответа |
Метод | Описание |
---|---|
setPush(string $text, array $payload = []) |
Устанавливает Push-уведомление с текстом $text и нагрузкой $payload (может быть пустой) |
Метод | Описание |
---|---|
addButton(string $title) |
Добавляет кнопку с именем $title |
addButtons(array $titles) |
Добавляет кнопки с именами из массива $titles |
Метод | Описание |
---|---|
addCard(Card $card) |
Добавляет заполненную карточку в ответ |
Метод | Описание |
---|---|
getClientCity() |
Возвращает название города клиента на русском языке |
getClientLocale() |
Возвращает языковой стандарт клиента |
getClientTimezone() |
Возвращает часовой пояс клиента |
Метод | Описание |
---|---|
setEndSession() |
Устанавливает конец сессии |
getSessionStates() |
Возвращает состояния сессии (session state) запроса |
getSessionState(string $key) |
Возвращает состояние сессии (session state) запроса по ключу $key |
setSessionState(string $key, $value) |
Устанавливает значение $value по ключу $key в массив состояний сессии |
delSessionState(string $key) |
Удаляет состояние сессии по ключу $key |
clearSessionStates() |
Очищает состояния сессии |
Метод | Описание |
---|---|
getUserStates() |
Возвращает состояния пользователя (user state) запроса |
getUserState(string $key) |
Возвращает состояние пользователя (user state) запроса по ключу $key |
setUserState(string $key, $value) |
Устанавливает значение $value по ключу $key в массив состояний пользователя |
delUserState(string $key) |
Удаляет состояние пользователя по ключу $key |
clearUserStates() |
Очищает состояния пользователя |
Метод | Описание |
---|---|
getResponseJson() |
Формирует и возвращает JSON ответ для Маруси |
Объект класса для работы с карточками создается следующим образом:
use VKMarLib\Classes\Card;
$cardType = "BigImage";
$card = new Card($cardType);
, где входной параметр $type
может принимать значения "BigImage", "ItemsList", "MiniApp" или "Link".
Метод | Описание |
---|---|
setImageId(int $imageId) |
Устанавливает изображение для карточки |
addImageId(int $imageId) |
Добавляет изображение с imageId в список ItemsList |
setUrl(string $url) |
Устанавливает ссылку для карточки |
setTitle(string $title) |
Устанавливает заголовок для карточки Link |
setText(string $text) |
Устанавливает текст для карточки Link |
getCard() |
Возвращает заполненную карточку в виде массива |
Тип | Условия |
---|---|
VKMarLib\Exceptions\ResponseException |
Ошибка формирования ответа для Маруси |
VKMarLib\Exceptions\RequestException |
Ошибка чтения запроса от Маруси |
VKMarLib\Exceptions\ValidationException |
Нарушение валидации данных для ответа Марусе |
VKMarLib\Exceptions\ArgumentException |
Передача неверного параметра в методах формирования ответа для Маруси |
VKMarLib\Exceptions\NotAvailableForActionException |
Метод не может быть вызван |
Все примеры можно найти в директории /examples
.
MIT