スキル認定へのヒント: ヘルプインテント編

Nahoko Hirabayashi Jul 13, 2018
Share:
Certification
Blog_Header_Post_Img

Alexaのスキルストアに公開するすべてのスキルは、公開前に審査を申請し、認定を受けていただく必要があります。このブログシリーズでは、審査で不合格となるスキルの傾向を紹介し、その対応方法を紹介いたします。

 

審査で不合格となる理由として、現在下記の3つが最も多く報告されています。

  • HelpIntentでセッションが閉じてしまう。
  • StopIntent and/or CancelIntentで スキルを終了しているにも関わらず、 セッションが開いたままになっている。
  • LaunchIntentで適切な返答を返していない。

上記のうち、今回は「HelpIntentでセッションが閉じてしまう」ケースについてご紹介します。

 

まずヘルプインテントの悪い例を見てみましょう。

Copied to clipboard
ユーザー:アレクサ、十二星座占いを開いて
スキル:ようこそ十二星座占いへ。このスキルでは、十二星座で今日の運勢を占います。占いをはじめますか。
ユーザー:ヘルプ
スキル:今日の運勢を占います。たとえば、ふたご座の運勢を教えてと聞いてください。(セッションクローズ)

この例では、ユーザーへ次の発話を促しておらず、セッションを閉じてスキルを終了してしまっています。しかし、ヘルプの応答は、ユーザーが次に発話できるよう、セッションを開いたままにする必要があります。また、ユーザーの次の発話を促せるよう、ユーザーへの質問で終わるのが望ましい形です。

どのようにコーディングすればよいでしょうか。

Copied to clipboard
const HelpIntentHandler = {
  canHandle(handlerInput) {
    return handlerInput.requestEnvelope.request.type === 'IntentRequest'
      && handlerInput.requestEnvelope.request.intent.name === 'AMAZON.HelpIntent';
  },
  handle(handlerInput) {
    const speechText = '今日の運勢を占います。たとえば、ふたご座の運勢を教えてのように聞いてください。何座の運勢を占いますか?';
    const repromptText = 'たとえば、ふたご座の運勢を教えて、あるいは、てんびん座の運勢を教えてと聞いてください。';


    return handlerInput.responseBuilder
      .speak(speechText)
      .reprompt(repromptText)
      .withSimpleCard('十二星座占い',speechText)
      .getResponse();
  },
};

上記のサンプルコードではresponseBuilderに .repromptを設定することでセッションを開いたままにしています。

では、実際にどのような会話になるか見てみましょう。

Copied to clipboard
ユーザー:アレクサ、十二星座占いを開いて
スキル:ようこそ十二星座占いへ。このスキルでは、十二星座で今日の運勢を占います。占いをはじめますか。
ユーザー:ヘルプ
スキル:今日の運勢を占います。たとえば、ふたご座の運勢を教えてのように聞いてください。何座の運勢を占いますか?
ユーザー:ふたご座の運勢を教えて。
スキル:ふたご座の今日の運勢は星3つです。

ヘルプへのスキルからの応答では、スキルの主要な機能およびスキルの操作方法に関する分かりやすい答えを提供する必要がある点も、ご注意ください。こちらの例は、ヘルプインテントの会話の一例ですので、詳細はテクニカルドキュメントのヘルプの提供をご参照ください。

より詳細なドキュメント・チュートリアル・サンプルコードにつきましてはGitHub上のASK SDK for Node.jsをご確認ください。

 

スキル認定に関する関連記事

Alexaスキル認定へのヒント集

Alexaスキル認定へのヒント:サンプルフレーズ編

Alexaスキル内の広告について

Alexaスキル認定へのヒント : スマートホームスキル編

皆様からのフィードバックは、私たちにとってとても貴重なものです。スキルの認定に関するご意見がありましたら、お問い合わせフォームからいつでもお送りください。

また、 スキル開発時に分からないことがあれば、Alexa開発者フォーラムもご利用ください。フォーラム上でいただいたご質問に、担当がお答えいたします。