みなさまが開発されたAlexaスキルは、スキルストアへの公開に当たり、 Alexa審査チームが認定審査をさせていただき、 スキルがよいユーザー体験をお届けできるよう、必要に応じてフィードバックをさせていただいています。審査で改善のフィードバックを受けるスキルの傾向を紹介し、事前にご対応いただく方法を紹介します。今回は「セッション管理」についてです。
スキルからAlexaサービスに送信されたすべての応答には、ユーザーとの対話(セッション)が終了したか、継続しているかを示すフラグが含まれています。
shouldEndSessionプロパティをtrueにすると、AlexaはoutputSpeechの内容を発話した後、セッションは終了します。セッションを閉じてスキルを終了すると、ユーザーが次に発話することができません。
shouldEndSessionプロパティをfalseにすると、セッションは開いたままになり、ユーザーが次に発話できるようになります。この時、Echo端末のライトは青く光ります。https://www.amazon.co.jp/gp/help/customer/display.html?language=en_US&nodeId=201601790
対話とJSONの例を見てみましょう。
1. 正しい例: ユーザーの次の発話を促せるよう、ユーザーへの質問で終わっており、セッションは開いている
ユーザー: アレクサ、十二星座占いを開いて
スキル: ようこそ十二星座占いへ。このスキルでは、十二星座で今日の運勢を占います。占いをはじめますか。<セッションは開いたまま>
{ "body": { "version": "1.0", "response": { "outputSpeech": { "type": "SSML", "ssml": "<speak>ようこそ十二星座占いへ。このスキルでは、十二星座で今日の運勢を占います。占いをはじめますか。</speak>" }, "shouldEndSession": false } } }
2.悪い例: ユーザーの次の発話を促しておらず、セッションは開いたままになっている
ユーザー: アレクサ、十二星座占いでふたご座の運勢を教えて
スキル: ふたご座の今日の運勢は星3つです。<セッションは開いたまま>
{ "body": { "version": "1.0", "response": { "outputSpeech": { "type": "SSML", "ssml": "<speak>ふたご座の今日の運勢は星3つです。</speak>" }, "shouldEndSession": false } } }
ユーザーの次の発話を促していない場合は、セッションは閉じましょう。
3. 正しい例: ユーザーの次の発話を促しておらず、セッションは終了する
ユーザー: アレクサ、十二星座占いでふたご座の運勢を教えて
スキル: ふたご座の今日の運勢は星3つです。<セッション閉じる>
{ "body": { "version": "1.0", "response": { "outputSpeech": { "type": "SSML", "ssml": "<speak> ふたご座の今日の運勢は星3つです。</speak>" }, "shouldEndSession": true } } }
4. 悪い例: ユーザーの次の発話を促しており、ユーザーへの質問で終わっているが、セッションは閉じてしまう
ユーザー: アレクサ、十二星座占いでふたご座の運勢を教えて
スキル: ふたご座の今日の運勢は星3つです。他の星座を試しますか? <セッション閉じる>
{ "body": { "version": "1.0", "response": { "outputSpeech": { "type": "SSML", "ssml": "<speak> ふたご座の今日の運勢は星3つです。他の星座を試しますか? </speak>" }, "shouldEndSession": true } } }
ユーザーの次の発話を促していて、ユーザーへの質問で終わっている場合は、セッションは開いたままにしましょう。
関連資料