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
我正在为 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