我们有没有办法确定用户是否是第一次使用某项技能?不使用后端数据库存储访问信息?
例如,请求对象指定用户是否授予了权限。是否有一种方法也可以确定用户是否是第一次启动该技能?
{
"version":"1.0",
"session":{
"new":true,
"sessionId":"amzn1.echo-api.session.abc",
"application":{
"applicationId":"amzn1.ask.sabc3"
},
"user":{
"userId":"amzn1.ask.account.AGQ"
}
},
"context":{
"System":{
"application":{
"applicationId":"amzn1.ask.skill.bb"
},
"user":{
"userId":"amzn1.ask.account.AGQ"
},
"device":{
"deviceId":"amzn1.ask.device.AHH",
"supportedInterfaces":{
}
},
"apiEndpoint":"https://api.amazonalexa.com",
"apiAccessToken":"eysed"
}
},
"request":{
"type":"LaunchRequest",
"requestId":"amzn1.echo-api.request.09b",
"timestamp":"2018-10-15T17:03:03Z",
"locale":"en-US",
"shouldLinkResultBeReturned":false
}
}
3条答案
按热度按时间ekqde3dh1#
如果没有像amazons3这样的存储机制,恐怕不可能知道用户是否第一次启动了这个技能。
是的,请求对象告诉您,如果用户是否提供了权限,但是无法从访问令牌确定该用户是否第一次使用了该技能。
ekqde3dh2#
您可以通过并行检查以下两个条件来识别:
在请求体中,会话下有“new”键。如果这是真的,那么用户是第一次启动一项技能。
同样在请求体中,session下会有“attributes”键。它必须是空的。
ylamdve63#
最后,我不得不去把dynamodb添加到图片中。存储设备ID和上次访问时间戳的数据库。