0

现在我正在尝试使用 AWS Lambda 构建一种跨平台。我在 Lambda 中的对象处理程序应该能够处理来自 Alexa Skill 和来自 Google Action 的请求。这就是为什么我需要一个依赖的处理程序。Alexa 对象处理程序如下所示:

const SkillBuilder = Alexa.SkillBuilders.custom();

exports.handler = skillBuilder
  .addRequestHandlers(
    LaunchRequestHandler,
    HelloWorldIntentHandler
  )
  .addErrorHandlers(ErrorHandler)
  .lambda();

Assistant 对象处理程序如下所示:

exports.handler = function(event, context, callback) {     
  app.handler(event, {}).then((res) => {
      if (res.status != 200) {
          callback(null, {"fulfillmentText": `I got status code: 
${res.status}`});
      } else {
          callback(null, res.body);
      }
  }).catch((e) => {
  callback(null, {"fulfillmentText": `There was an error\n${e}`});
  });
};

现在我想检查 Lambda 请求是来自 Assistant 还是 Alexa,并且取决于它应该被正确处理。但到目前为止,我不确定该怎么做。你有什么想法?先感谢您!

4

1 回答 1

0

您正在通过 API GATEWAY 访问您的 lambda,对吗?无论如何,您应该从事件对象中获取更多信息。

API GATEWAY 将发送有关封装在事件对象中的请求的所有信息,并将其作为参数传递给您的 lambda 函数。然后,您可以检查其属性以查看您是否从请求的来源获得信息。

您可以像这样记录事件对象:

console.log(JSON.stringify(event));

于 2019-01-08T21:55:41.287 回答