Переменные, доступные в обработчиках Actions
$data
Предоставляет доступ к полному ответу, полученному от сервиса на данный запрос. Интерес могут представлять поля:
-
- $data['result']['actionIncomplete'] - указывает, что запрос не завершен (требуется уточнение обязательных параметров). Если это поле равно true, Модуль будет пытаться выполнить метод ask для уточнения.
- $data['result']['fulfillment']['speech'] - ответное сообщение от сервиса. Будет проговорено системой. Благодаря тому, что переменная $data передается в код по ссылке, значение этого поля можно изменить в обработчике, например
1 |
$data['result']['fulfillment']['speech'] = ""; |
предотвратит проговаривание ответа от сервиса. Так же можно заменить другим сообщением.
$params
Список параметров, передаваемых с Action. То же, что и $data['result']['parameters']
$action_name
Имя сработавшего Action. То же, что и $data['result']['action']
$source
Имя терминала, с которого пришел запрос.
$contexts
Массив контекстов из ответа сервиса. То же, что и $data['result']['contexts']
Функции, доступные в обработчиках Actions
$context($name)
Почти то же самое, что и переменная $contexts, только возвращает конкретный контекст из ответа сервиса (по имени)
$setContext($name, $lifespan = 5, $parameters = null)
Устанавливает контекст для текущей сессии. Описание параметров в API
$deleteContext($name = '')
Удаляет контекст из текущей сессии по имени, либо очищает контексты, если $name пустое или не указано.
$globalContexts()
Возвращает массив глобальных контекстов. Глобальные контексты добавляются в каждый запрос всех сессий.
$setGlobalContext($name, $lifespan = 5, $parameters = null)
Добавляет контекст в список глобальных. Пример:
1 |
$setGlobalContext('playing-music', 5, array('song'=>'123', 'title'=>'Song Title')); |
$deleteGlobalContext($name)
Удаляет контекст из списка глобальных по имени.
$setSessionEntity($entity_name)
Выгружает для данной сессии "Пользовательскую сущность". entity_name - имя из списка на странице Entities
Дополнительные возможности.
- Если код обработчика Action вернет
return false;
событие будет считаться необработанным и управление передастся другим модулям, Шаблонам поведения и т.д. - Если во время запроса известен пользователь, от которого он пришел, Модуль установит два входящих контекста
known-user и user-имя_пользователя
- Если во время запроса известен терминал, от которого он пришел, Модуль установит два входящих контекста
known-terminal и terminal-имя_терминала