基于Web的Alexa技能同时接收IntentRequest和SessionEndedRequest

时间:2016-07-30 22:11:02

标签: alexa alexa-skill

我已经编写了一项功能非常出色的技巧,但第二项技巧并不合作。这是一个简单的类似琐事的技能(你可以看到code on GitHub),并且启动和初始意图很有效。但是,当技能向用户询问问题并等待答案时,我的服务器会收到两个HTTP请求,一个用于IntentRequest(用户的答案),另一个用于SessionEndedRequest。亚马逊忽略了我对IntentRequest(它独立工作)的响应,因为它已经发送了一个SessionEndedRequest。

我已经在"服务模拟器"中测试了这项技能。在亚马逊上,Echosim,以及我自己的Echo设备。在服务模拟器中一切正常 - 我的猜测是因为它只向我的服务器发送一个请求。 (这就是我如何知道我的代码处理IntentRequest以便用户回答的问题。)然而,当我在Echosim或我自己的设备上测试时,我同时收到两个请求:意图和会议结束:

2016-07-30T21:47:30.819563+00:00 app[web.1]:  { version: '1.0',
2016-07-30T21:47:30.819564+00:00 app[web.1]:   session:
2016-07-30T21:47:30.819565+00:00 app[web.1]:    { new: false,
2016-07-30T21:47:30.819566+00:00 app[web.1]:      sessionId: 'amzn1.echo-api.session.e42282ad-c89f-4bb9-b434-259686f26b47',
2016-07-30T21:47:30.819567+00:00 app[web.1]:      application: { applicationId: 'amzn1.ask.skill....' },
2016-07-30T21:47:30.819567+00:00 app[web.1]:      attributes: { question: 'name' },
2016-07-30T21:47:30.819573+00:00 app[web.1]:      user: { userId: 'amzn1.ask.account....' } },
2016-07-30T21:47:30.819574+00:00 app[web.1]:   request:
2016-07-30T21:47:30.819575+00:00 app[web.1]:    { type: 'IntentRequest',
2016-07-30T21:47:30.819575+00:00 app[web.1]:      requestId: 'amzn1.echo-api.request.a9991397-11a8-4fac-8406-33fb1b419b62',
2016-07-30T21:47:30.819576+00:00 app[web.1]:      timestamp: '2016-07-30T21:47:30Z',
2016-07-30T21:47:30.819576+00:00 app[web.1]:      locale: 'en-US',
2016-07-30T21:47:30.819577+00:00 app[web.1]:      intent: { name: 'GiveAnswer', slots: [Object] } } }
2016-07-30T21:47:30.819710+00:00 app[web.1]: Did they answer correctly? name king arthur
2016-07-30T21:47:30.847813+00:00 app[web.1]: New request for the bridge keeper:
2016-07-30T21:47:30.847815+00:00 app[web.1]:  { version: '1.0',
2016-07-30T21:47:30.847816+00:00 app[web.1]:   session:
2016-07-30T21:47:30.847816+00:00 app[web.1]:    { new: false,
2016-07-30T21:47:30.847817+00:00 app[web.1]:      sessionId: 'amzn1.echo-api.session.e42282ad-c89f-4bb9-b434-259686f26b47',
2016-07-30T21:47:30.847818+00:00 app[web.1]:      application: { applicationId: 'amzn1.ask.skill....' },
2016-07-30T21:47:30.847818+00:00 app[web.1]:      attributes: { question: 'name' },
2016-07-30T21:47:30.847819+00:00 app[web.1]:      user: { userId: 'amzn1.ask.account....' } },
2016-07-30T21:47:30.847820+00:00 app[web.1]:   request:
2016-07-30T21:47:30.847820+00:00 app[web.1]:    { type: 'SessionEndedRequest',
2016-07-30T21:47:30.847821+00:00 app[web.1]:      requestId: 'amzn1.echo-api.request.f2497e02-9ef4-405e-aee0-c7d2b6c67622',
2016-07-30T21:47:30.847821+00:00 app[web.1]:      timestamp: '2016-07-30T21:47:30Z',
2016-07-30T21:47:30.847822+00:00 app[web.1]:      locale: 'en-US',
2016-07-30T21:47:30.847822+00:00 app[web.1]:      reason: 'ERROR' } }

上面你可以看到两个请求的主体和时间......几乎同时发生。如果亚马逊不发送SessionEndedRequest,我的技能就可以正常工作了!

有没有人见过这个?有关正在发生的事情的任何想法?

0 个答案:

没有答案