Как использовать ask-sdk-v1adapter для переноса лямбда-кода sdk1 в sdk2

#node.js #amazon-web-services #aws-lambda #alexa-skills-kit

#node.js #amazon-веб-сервисы #aws-lambda #alexa-skills-kit

Вопрос:

Я пытаюсь узнать, как перенести код SDK1 в SDK2, используя ask-sdk-v1adapter , я получаю TypeError: не удается прочитать свойство ‘locale’ неопределенного значения или ошибку инициализации модуля: TypeError. Я использовал простую программу Hello world, но все еще безуспешно. Любая помощь будет высоко оценена

Я уже установил необходимые зависимости . Упомянутый сайт является https://ask-sdk-for-nodejs.readthedocs.io/en/latest/ASK-SDK-Migration-Guide.html

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

exports.handler = function(event, context, callback) {
  const alexa = Alexa.handler(event, context);
  alexa.registerHandlers(handlers);
  alexa.registerV2Handlers(HelloWorldIntentHandler);
  alexa.execute();
};



const handlers = {
  'LaunchRequest': function () {
    this.emit('SayHello');
  },
    'SayHello': function () {
    this.response.speak('Hello World!');
    this.emit(':responseReady');
  },
  'AMAZON.CancelIntent': function () {
    this.response.speak('Goodbye!');
    this.emit(':responseReady');
  },
  'AMAZON.StopIntent': function () {
    this.response.speak('See you later!');
    this.emit(':responseReady');
  }
};

const HelloWorldIntentHandler = {
  canHandle(handlerInput) {
    return handlerInput.requestEnvelope.request.type === 'IntentRequest'
      amp;amp; handlerInput.requestEnvelope.request.intent.name === 'HelloWorldIntent';
  },
  handle(handlerInput){
    const speechOutput = 'Hello, welcome to the test.I am working ';

    return handlerInput.responseBuilder
      .speak(speechOutput)
      .reprompt()
      .getResponse();
  },
};
 

Комментарии:

1. Просто в стороне, эта документация не содержит подробностей о многих методах. Нравится диалоговое окно. Директивные методы упоминаются (почти незаметно) один раз в разделе о построении ответа, но вы должны обратиться к документации на AWS, чтобы действительно увидеть все, что вы можете с ними сделать.

2. Ваш повторный запрос пуст. Не знаю, связано ли это с этой конкретной ошибкой, но попробуйте добавить туда строку.

3. @dillon.harless, спасибо за ответ, но пробовал и с reprompt .. не получилось

4. Хммм. Есть ли что-то еще для ошибки?

5. В консоли разработчика alexa я получаю сообщение об ошибке, предоставленный объект не является допустимым шаблоном, когда я пытаюсь вызвать обработчик, написанный в формате sdk2, есть идеи, почему?