我正在为Amazon Echo开发一项新技能,当我需要获取clientContext以验证应用程序中此Amazon Echo的客户端ID时,我遇到了一些问题。
谁知道它是如何正常工作的?每次我在undefined
收到context.clientContext
值。
我在Alexa开发人员面板中完成了这个过程:
1)创建技能“自定义交互模型”
2)正确填写交互模型
3)端点I与Lambda函数链接
4)我已将Yes
检查为“您是否允许用户创建帐户或链接到现有帐户?”题。
在lambda函数中我做到了:
1)使用Lambda中Alexa的“颜色”示例
2)在第一行,我把日志验证信息到达了什么。
像这样:
console.log("event.session.application.applicationId=" + event.session.application.applicationId);
console.log('clientContext =', context.clientContext);
console.log('context =', context);
数据是:
clientContext = undefined
{callbackWaitsForEmptyEventLoop:[Getter / Setter],done:[Function],success:[Function],fail:[Function],logGroupName:'/ aws / lambda / color',logStreamName:'2016/08/19 / [$ LATEST ] 7d66fec34f604692ad4c0bd1d138ae51',functionName:'color',memoryLimitInMB:'128',functionVersion:'$ LATEST',getRemainingTimeInMillis:[Function],invokeid:'14c606ef-6614-11e6-940d-cd0e175f3bda',awsRequestId:'14c606ef-6614- 11e6-940d-cd0e175f3bda',invokedFunctionArn:'arn:aws:lambda:us-east-1:........... 86:function:color'}
我在Lambda文档中读到这个值可能是null
,但是这个值为null的原因是什么?
非常感谢。
您可以使用服务器在帐户关联时返回到Amazon的OAuth令牌来确定链接用户的身份。
在技能方面,亚马逊在会话中将该令牌传递给您(如果存在)。例如。在javascript Lambda:session.user.accessToken中