使用aws-sdk2时,如何在启动请求后使会话保持活动状态

时间:2019-02-07 10:49:53

标签: amazon-web-services

这是我用于lambda函数的代码段,但我正在使用sdk v2。当我运行它时,该技能会在启动请求后立即超时。

我尝试过.keepSession().listen()

const LaunchRequestHandler = {
      canHandle(handlerInput) {
          return handlerInput.requestEnvelope.request.type==='LaunchRequest';
                             },
  handle(handlerInput) {
    const speakOutput = 'Hello,Welcome to DXC\'s google.How may I help you?';
    return handlerInput.responseBuilder
    .speak(speakOutput) // The text passed to speak, is what Alexa will say.
    .getResponse();
},
};
//asks for employee id
const EmployeeIdIntentHandler = {
    canHandle(handlerInput) {

        console.log(handlerInput.requestEnvelope.request.intent.name);
     return handlerInput.requestEnvelope.request.type === 'IntentRequest'
     && handlerInput.requestEnvelope.request.intent.name === 'EmployeeIdIntent'
   },
   handle(handlerInput) {
    const speakOutput = 'Please tell me your employee id';
    return handlerInput.responseBuilder
    .speak(speakOutput) // The text passed to speak, is what Alexa will say.
    .getResponse();  
   },
};

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我的第一个建议是在LaunchRequest上添加一个.reprompt(REPROMPT_MESSAGE),以提醒用户回答。 您也可以尝试添加

return handlerInput.responseBuilder .speak(speakOutput) .withShouldEndSession(false) .getResponse();

我通常在需要关闭会话时使用它(参数中为true)。

您可以在文档中找到更多信息: https://developer.amazon.com/es/docs/custom-skills/request-and-response-json-reference.html#response-format

希望它能对您有所帮助!