私はすでに素晴らしく機能するスキルを 1 つ書きましたが、この 2 つ目のスキルは協力的ではありません。これは単純な雑学のようなスキル (GitHub で <a href="https://github.com/jakerella/alexa-bridge-keeper" rel="nofollow">コードを参照できます) であり、起動と初期意図はうまく機能します。しかし、スキルがユーザーに質問をして回答を待つと、私のサーバーはIntentRequest
(ユーザーの回答) と の2 つの HTTP リクエストを受け取りますSessionEndedRequest
。Amazon は、既に SessionEndedRequest を送信しているため、(独立して動作している) IntentRequest に対する私の応答を無視しています。
このスキルは、Amazon の「サービス シミュレーター」、 <a href="https://echosim.io/" rel="nofollow">Echosim、および自分の Echo デバイスでテストしました。Service Simulator では、すべて正常に動作します。サーバーに単一の要求しか送信しないためだと思います。(これが、コードがユーザーの回答に対する IntentRequest を適切に処理することを知っている方法です。) ただし、Echosim または自分のデバイスでテストすると、意図とセッション終了の 2 つの要求を同時に受け取ります。
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' } }
上に、両方のリクエストの本文と時刻が表示されています...ほぼ同時に表示されます。Amazon が SessionEndedRequest を送信しなければ、私のスキルは正常に機能していたはずです!
誰もこれを見たことがありますか?何が起こっているのかについて何か考えはありますか?