スキルに対するAPLサポート



APLサポートのスキルへの追加

APLサポートをスキルに追加するには、以下を確認します。

  • ALEXA_PRESENTATION_APLインターフェースに対応するようスキルを設定します。

  • スキルサービスでユーザーのデバイスがAPLをサポートしているかどうかを検出します。

  • スキルサービスが応答でRenderDocumentディレクティブを返します。

  • スキルサービスがAPLイベントをリッスンします。

  • スキルがHTTPSエンドポイントでホスティングされているAPL resourcesを参照する場合はCross-Origin Resource Sharingを有効にします。

ALEXA_PRESENTATION_APLインターフェースに対応するようスキルを設定する

開発者コンソールまたはASK CLIを使用して、ALEXA_PRESENTATION_APLインターフェースに対応するようスキルを設定できます。

開発者コンソールを使用する

このセクションでは、開発者用コンソールを使用して、Alexa Presentation Languageに対応するスキルを設定する方法について説明します。

ALEXA_PRESENTATION_APLインターフェースをサポートするプロセスと、Alexa.Presentation.APL.RenderDocumentディレクティブ(APLで画面にコンテンツを表示する際に使用するディレクティブ)の使用を有効にするプロセスは、新しいスキルでも既存スキルでも同じです。

1.開発者コンソールを開き、設定するスキルの編集をクリックします。

2.ビルド > カスタム > インターフェースページに移動します。

3.Alexa Presentation Languageオプションを有効にします。モデルをビルドをクリックして、対話モデルを再度ビルドしてください。

4.スキルサービスコードは、ユーザーのデバイスに応じたインターフェースを判断するので、視覚コンテンツなど、適切に描画されたコンテンツを伴う応答を提供できます。サポートされているインターフェースを判断するには、Alexa のリクエストのevent.context.System.device.supportedInterfacesの値を解析します。supportedInterfacesの値によって、デバイスがサポートするインターフェースがわかります。

ASK CLIを使用する

このセクションでは、開発者用コンソールではなくASK CLIを使用して、Alexa Presentation Languageに対応するスキルを設定する方法について説明します。

開発者用コンソールではなくASK CLIを使用してスキルを管理する方法の一般的な情報については、Alexa Skills Kitコマンドラインインターフェースクイックスタートガイドを参照してください。

ASK CLIを使用してスキルを管理する場合は、次のように、ALEXA_PRESENTATION_APLスキルマニフェストのサポートされるインターフェースのリストに追加する必要があります。

1.ask api get-skill -s amzn1.ask.skill.<skillId>コマンドを実行して、スキルコンポーネントをダウンロードします。get skillサブコマンドを参照してください。

2.skill.jsonファイル(スキルマニフェスト)を編集し、ALEXA_PRESENTATION_APLをインターフェースのリストに追加します。 サンプルスキルマニフェストを参照してください。

3.ask api update-skill -s amzn1.ask.skill.<skillId> -f skill.jsonコマンドを実行して、変更されたスキルマニフェストをデプロイします。update skillサブコマンドを参照してください。

4.変更されたスキルマニフェストが正しくデプロイされていることを確認するには、ステップ1を再度実行してスキルマニフェストをダウンロードします。エディターでskill.jsonファイルを開き、インターフェースオブジェクトにALEXA_PRESENTATION_APLが含まれていることを確認します。

ユーザーデバイスでAlexa Presentation Languageサポートを検出する

supportedInterfacesプロパティには、デバイスがサポートする各インターフェースが一覧表示されます。APLドキュメントの送信およびAlexaからのAPLイベントの受信に使用するインターフェースの名前は、以下のLaunchRequestの例のとおり、Alexa.Presentation.APLです。カスタムスキルのJSONインターフェースのリファレンスを参照してください。

サンプルのLaunchRequestでは、サポート対象のインターフェースにAlexa.Presentation.APLが含まれています。ユーザーのデバイスはAPL画面サポートに対応しているということです。

SDK for Node.js 2.0によるAPLサポートを追加する

スキルでSDK for Node.js 2.0を使用する場合のAPLサポートを参照してください。

SDK for Node.js 2.0によるサポートを使用しないでAPLサポートをスキルに追加する

Node.js 2.0 SDKを使わずに、ALEXA_PRESENTATION_APLインターフェースをサポートするAlexaスキルを作成している場合、スキルサービスが応答でAlexa.Presentation.APL.RenderDocumentを返してコンテンツを適切に画面に表示できるようにする必要があります。カスタムスキルのJSONインターフェースのリファレンスを参照してください。

スキルでALEXA_PRESENTATION_APLインターフェースがサポートされている場合は、スキル応答でAlexa.Presentation.APL.ExecuteCommandsディレクティブを使用して、APLコマンドを実行することができます。APLコマンドは、画面でのAPLドキュメントの視覚または音声表現を変更するメッセージです。

通常APLは他の画面表示オプションと組み合わせて使用しません。予期しない結果が発生することがあるため、同じスキル応答でDisplay.RenderTemplateAlexa.Presentation.APL.ExecuteCommandsを一緒に使用しないでください。

このサンプルスキル応答には、Alexa.Presentation.APL.RenderDocumentディレクティブが含まれます。

AlexaでAPL UserEventsをリッスンする

APLドキュメントで発生したイベントをリッスンするときは、スキルはAlexa.Presentation.APL.UserEventリクエストをリッスンする必要があります。

Alexa.Presentation.APL.UserEventスキルのリクエスト例

CORS(Cross-Origin Resource Sharing)でAPLリソースを利用できるようにする

スキルがHTTPSエンドポイントでホスティングされているAPL resourcesを参照している場合、このエンドポイントが以下の要件を満たすことを確認する必要があります。

  • エンドポイントでは、Amazon認定の認証局が署名したSSL証明書を提供します。これは、多くのコンテンツホスティングサービスで提供されています。たとえば、Amazon Simple Storage Service(Amazon S3)アマゾンウェブサービスが提供)などのサービスでファイルをホストできます。
  • エンドポイントで、画像のCross-Origin Resource Sharing(CORS)を許可する必要があります。

CORSを有効にするには、リソースサーバーで、応答にAccess-Control-Allow-Originヘッダーを設定する必要があります。リソースをAlexaのみに制限するには、取得元として*.amazon.comのみをホワイトリストに登録します。

リソースがAmazon S3バケット内にある場合は、以下のCORSコンフィギュレーションを使用してバケットを設定します。

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
</CORSRule>
</CORSConfiguration>

S3およびCORSの詳細については、Enabling Cross-Origin Resource Sharingを有効にするを参照してください。