Почему не работает разрешение на имя? - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь разрешить разрешение в Google Assistant, но симулятор просто просит «повторить ответ» при запросе имени.Вот код для разрешения.

app.intent('Default Welcome Intent', (conv) => {
conv.ask(new Permission({
context: 'Hi there, to get to know you better',
permissions: 'NAME'
 }));
});

При развертывании кода через Firebase не выдается никаких ошибок.

Заранее спасибо.

1 Ответ

0 голосов
/ 01 октября 2018

В вашем агенте Default Welcome Intent - это намерение, которое запрашивает разрешение NAME.Вам придется реализовать другое намерение обработать это разрешение.Давайте назовем это user_info Намерение.

Итак, когда Actions On Google задает вопрос, и пользователь отвечает «да» или «нет» (предоставляет или отклоняет);Actions On Google отправит событие DialogFlow с именем actions_intent_PERMISSION.Мы будем использовать это событие, чтобы вызвать это конкретное намерение.Как только намерение будет инициировано, мы обязательно отправим действие «user_info» в наше приложение.

enter image description here

В приложении мы будемзарегистрируйте действие user_info и убедитесь, что пользователь предоставил или отклонил разрешения.Для этого мы вызываем вспомогательный метод isPermissionGranted.

app.intent('user_info', (conv, params, permissionGranted) => {

  if (!permissionGranted) {
    throw new Error('Permission not granted');
  }

  const {requestedPermission} = conv.data;

  if (requestedPermission === 'NAME') {
    conv.user.storage.name = conv.user.name.display;
    return conv.close(responses.sayName(conv.user.storage.name));
  }

  throw new Error('Unrecognized permission');

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...