Alexa: Невозможно обновить таблицу DynamoDB - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть навык Alexa, который запрашивает ваше имя, а затем использует ваше имя на протяжении всего навыка.Тем не менее, я получаю, когда он завершает запрос на запуск.И я даю ему свое имя, оно идет прямо к необработанному намерению (с выходной речью «Я не получил правильный ответ») вместо GetNameIntent.Когда я получаю доступ к таблице DynamoDB, я получаю следующее

enter image description here enter image description here

'use strict';
const Alexa = require('alexa-sdk');

exports.handler = function(event, context, callback) {
  const alexa = Alexa.handler(event, context, callback);
  alexa.dynamoDBTableName = "my table name";
  alexa.APP_ID = "My ID";
  alexa.registerHandlers(handlers);
  alexa.execute();
};
 var handlers = {
  'LaunchRequest': function() {
    var userName = this.attributes['userName'];
     if (!userName) {
        this.emit('LaunchIntent');
     } else {
       this.emit('WelcomeBackIntent');
     }
  },

  'LaunchIntent': function() {
    const response =  "<audio src='soundbank://soundlibrary/ui/gameshow/amzn_ui_sfx_gameshow_bridge_01'/>" +
                      "My aim is to help you improve your flexibility. " +
                      "To get started what is your first name? ";

    const reprompt =  "Try saying your first name";



    this.emit(':askWithCard', response, reprompt, 'Hello  ', 'Good' + getWish() + ' ?', ;

  },

  "GetNameIntent": function() {
    this.attributes['userName'] = this.event.request.intent.slots.FirstName.value;
    var FirstName = this.attributes['userName'];

    if(FirstName) {
      this.emit(':ask', `Hey ${FirstName}! You can ask me for instructions. Or you can start a session. Say instructions. Or say start a session.`);
    } else {
      this.emit(':ask', `Sorry, I didn\t get your name!`, `Tell me your name by saying, My name is, and then your name`);
    }

'Unhandled': function() {
     this.emit(':tell', "I did not get a proper response. Please open the skill again by saying open three minute meditation ");
   }

Я настроил IAM и выбрал полныйдоступ к базе данных.И установили GetNameIntent в модели взаимодействия с FirstName и AMAZON.FirstName в качестве слота (с использованием английского языка), а также использовали AMAZON.US_FIRSTNAME (с использованием языка США), например issuse

...