1

我已经写了一个非常有效的技能,但是第二个不配合。这是一个简单的类似琐事的技能(你可以在 GitHub 上查看 <a href="https://github.com/jakerella/alexa-bridge-keeper" rel="nofollow">代码)以及启动和初始意图运作良好。但是,当技能向用户提出问题并等待答案时,我的服务器会收到两个 HTTP 请求,一个用于IntentRequest(用户的答案),一个用于SessionEndedRequest. 亚马逊忽略了我对 IntentRequest(独立工作)的响应,因为它已经发送了 SessionEndedRequest。

我已经在亚马逊的“服务模拟器”中测试了这项技能,使用<a href="https://echosim.io/" rel="nofollow">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 我的技能会很好用!

有没有人见过这个?有什么想法吗?

4

0 回答 0