Алекса не отвечает, когда я создал навык в построителе навыков

Я создал настраиваемое намерение навыка под названием EmergencyIntent, используя бета-версию средства построения навыков.

Теперь проблема в том, что он не запрашивает подтверждение намерения, как я настроил в построителе навыков.

Created EmergencyIntent, added sample utterance as emergency detected. then intent confirm message added

Добавлено EmergencyIntent в index.js

тоже пробовал

Без вывода сообщения

Результат теста пуст, когда я говорю об обнаружении аварийной ситуации

почему не запрашивается подтверждение намерений?


person Community    schedule 09.11.2017    source источник
comment
Я исправил эту проблему с помощью EmergencyIntent: function () {//this.response.speak(':confirm '); this.emit (': delegate')},   -  person    schedule 09.11.2017


Ответы (1)


Судя по вашему комментарию, вы решили проблему. Но я подумал, что добавлю, что вы также можете проверить состояние диалога, прежде чем отправлять свой окончательный ответ. Что-то вроде...

let dialogState = this.event.request.dialogState;
try {
  if (dialogState == "STARTED" || dialogState == "IN_PROGRESS") {
    this.emit(":delegate");
  }
} catch(err) {
  console.log("Error: " + err.message);
}
person Steve Tingiris    schedule 09.11.2017
comment
Спасибо. Но в моем случае приведенный выше код вызывает некоторую проблему. - person ; 10.11.2017
comment
Пользователь: Алекса играет песни / музыкант ‹/br› Алекса: Вы хотите играть какие-то конкретные песни? ‹/Br›, если пользователь говорит: «Да» ‹/br› Alexa: Вы ищете какие-то конкретные песни? ‹/Br› Пользователь: ДА ‹/br› Alexa: художник, которого вы ищете? ‹/Br› Пользователь: имя исполнителя ‹/br› Alexa: фильмы, которые вы ищете? ‹/Br› Пользователь: название фильма ‹/br› Alexa: альбом, который вы ищете? ‹/Br› Пользователь: название альбома ‹/br› // после всех вопросов Alexa: Хорошо, проигрываю песни из названия исполнителя / альбома / фильма, если пользователь говорит: Нет ‹/br› Alexa: Хорошо, проигрываю песни ‹/br› // Alexa должен перестать задавать вопросы, и он сыграет несколько песен - person ; 10.11.2017
comment
Когда я говорю НЕТ, он должен перестать задавать другие вопросы - person ; 10.11.2017
comment
Где мне взять стоимость слота? 'let dialogState = this.event.request.dialogState; попробуйте {если (dialogState == НАЧАЛО || dialogState == IN_PROGRESS) {this.emit (: делегат); }} catch (err) {console.log (Ошибка: + err.message); } ' - person ; 10.11.2017
comment
Я не уверен, что точно следую логике диалогового окна, но для ответа на вопросы типа «да / нет» у вас есть два варианта - использовать интерфейс диалога (см .: developer.amazon.com/docs/custom-skills/) и / или AMAZON.YesIntent и AMAZON.NoIntent, в этом случае вы, вероятно, захотите использовать обработчики состояния, чтобы вы могли использовать ответы на да / нет для разных вопросов. (см .: github.com / alexa /). - person Steve Tingiris; 10.11.2017
comment
Я снова прочитал приведенный вами пример диалога, но все еще не слежу за ходом разговора. Разве пользователь не сказал бы что-нибудь вроде: «Алекса, попроси {invocation-name} сыграть {songName} {artistName}»? Или «Алекса, попроси {invocation-name} воспроизвести песни {artistName}». Где ответ на запрос {songName} может быть таким: "Хорошо, какую песню {artistName} вы хотите, чтобы я сыграл?" - person Steve Tingiris; 10.11.2017