确定 AWS Lambda 函数上调用的自定义 Alexa Skill 的来源

问题描述 投票:0回答:1

希望这是一个快速的过程。我有一个使用 AWS Lambda 函数构建的自定义 Alexa 技能。该技能效果很好,但我希望该技能只能由我的两个 Alexa 设备之一访问。我查看了

request
标头,但找不到任何设备原始 ID,因此下面的代码当然不起作用。没有将此信息放入
request
似乎是一个疏忽(
context
也没有帮助)。有没有办法设置我的 Lambda 函数来了解此信息?也许我需要从 Alexa Dev Console 技能传递更多信息?任何帮助将不胜感激。

exports.handler = function(request, context) {
  if(request.originDevice == "Alexa Pop 1" ) return
  ...
}
node.js amazon-web-services aws-lambda alexa-skills-kit
1个回答
0
投票

发起请求的设备的用户友好名称不会传递给您的 lambda。有一个 deviceId 值,但每次启用该技能时该值都会有所不同。当您从特定 Alexa 设备发出请求并在 Lambda 中使用该请求时,您可以通过检查日志来找出 deviceId。但如果您禁用/重新启用该技能,该值将会改变。

请求.Context.System.device.deviceId

https://developer.amazon.com/en-US/docs/alexa/custom-skills/request-and-response-json-reference.html#system-object

© www.soinside.com 2019 - 2024. All rights reserved.