SDK for Node.js 2.0を使用したAPLサポートのスキルへの追加



SDK for Node.js 2.0を使用したAPLサポートのスキルへの追加

SDK for Node.js 2.0を使用して作成したAlexaスキルは、APLをサポートするよう更新できます。スキルにAPLサポートを追加する場合の一般的な情報については、APLサポートのスキルへの追加を参照してください。

次の例では、「Hello World」スキル用のシンプルな関数を使用しています。この関数を、お使いのスキルに合わせて調整してください。

  • 以下のようなLaunchHandler関数があるとします。
const LaunchHandler = (input) => {
    const speechText = 'ようこそ、アレクサスキルキットへ。こんにちは、と言ってみてください。';
    const repromptText = 'こんにちは、と言ってみてください。';

    return input.responseBuilder
      .speak(speechText)
      .reprompt(repromptText)
      .getResponse();
  },
};
  • 次に、画面表示用のAPLテンプレートを作成し、main.jsonという名前のファイルとして保存します。
{
  "type": "APL",
  "version": "1.0",
  "import": [
    {
      "name": "alexa-layouts",
      "version": "1.0.0"
    }
  ],
  "mainTemplate": {
    "parameters": [
      "payload"
    ],
    "items": [
      {
        "type": "Text",
        "text": "Hello World"
      }
    ]
  }
}
  • 最後に、元の関数を変更して、応答にこのAPLテンプレートを含めるようにします。このためには、responseBuilderaddDirective関数を呼び出して、Alexa.Presentation.APL.RenderDocumentディレクティブを追加します。オーサリングツールからコピーしたJSONコンテンツを追加するため、Node.jsのrequire()関数を使用して、このJSONコンテンツをAPLTemplateドキュメントの一部として読み込みます。

この関数は、応答にAPLを含めるように変更されました。

const LaunchHandler = (input) => {
    const speechText = 'ようこそ、アレクサスキルキットへ。こんにちは、と言ってみてください。';
    const repromptText = 'こんにちは、と言ってみてください。';

    return input.responseBuilder
            .speak(speechText)
            .reprompt(repromptText)
            .addDirective({
                type: 'Alexa.Presentation.APL.RenderDocument',
                token: '[SkillProvidedToken]',
                version: '1.0',
                document: myDocument,
                datasources: {}
            })
            .getResponse();
  },
};