Amazon Echo - Alexa - ContextClient 在 node.js 中使用 Lambda 开发技能无效

Amazon Echo - Alexa - ContextClient is null developing skill with Lambda in node.js

我正在为 Amazon Echo 开发一项新技能,当我需要获取 clientContext 以验证应用程序中此 Amazon Echo 的客户端 ID 是什么时,我遇到了一些问题。

有人知道它是如何正确工作的吗?每次我在 context.clientContext.

中收到 undefined

我在 Alexa 开发者面板中做了这个过程:

1) 创建技能 "Custom interaction Model"

2) 正确填充交互模型

3) 我与 Lambda 函数链接的端点

4) 我已经检查了 Yes 到 "Do you allow users to create an account or link to an existing account with you?" 的问题。

在 lambda 函数中我做到了:

1) 在 Lambda

中使用了 Alexa 的示例 "Colors"

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], succeed: [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,但此值为空的原因是什么?

非常感谢。

您可以使用您的服务器在帐户链接时返回给亚马逊的 OAuth 令牌来确定链接的用户是谁。

在一项技能中,该令牌由亚马逊在会话中传递给您(如果存在)。 例如。在 javascript Lambda 中:session.user.accessToken