APLドキュメントのインポートと書き出し


APLドキュメントのインポートと書き出し

APLドキュメントを書き出して、ドキュメントとデータソースを含むJSONファイルを作成できます。以前に書き出したドキュメントをインポートして、新しいドキュメントを作成することもできます。

以下のセクションでは、APLドキュメント全体を書き出す方法とインポートする方法について説明します。また、Lottie形式のアニメーションをインポートすることもできます。Lottieの詳細については、Lottieアニメーションのインポートを参照してください。

APLドキュメントをJSONに書き出す

開発者コンソールからドキュメントを書き出すと、ドキュメント、データ、ソースが結合され、トップレベルにdocumentdatasourcessourcesの各プロパティを含む単一のJSONファイルにまとめられます。

{
  "document": {},
  "datasources": {
    "dataSourceName": {}
  },
  "sources": {
    "sourceName": {}
  }
}

オーサリングツール以外を使用してこのファイルを変更した場合は、後で新しいAPLドキュメントとしてファイルを再度インポートできます。

ドキュメントを書き出すには

  1. 開発者コンソールで、ドキュメントを保存したスキルを開きます。
  2. 左側のナビゲーションから、マルチモーダル応答をクリックします。
  3. オーディオまたは視覚をクリックすると、既存のドキュメントの一覧が表示されます。
  4. 一覧でドキュメントを探し、ダウンロードをクリックします。

オーサリングツールでドキュメントを編集中にドキュメントを書き出すこともできます。右上隅のコードを書き出しボタン(コードを書き出しボタン)をクリックします。

書き出したドキュメントをスキルコードに使用する

APLドキュメントをJSONファイルに書き出したら、JSONをスキルコードにコピーして、RenderDocumentディレクティブでドキュメントを返すことができます。

RenderDocumentの詳細については、以下を参照してください。

JSONを書き出してコードにコピーする代わりに、RenderDocumentを返すときに開発者コンソールに保存したドキュメントへのリンクを指定できます。コードにJSONを組み込む代わりに応答にリンクすることで、コードが簡易化され、スキルデザイナーはコードに依存することなく開発者コンソールで応答を作成できます。

開発者コンソールでスキルと統合オプションを使用すると、コード例が生成され、ドキュメントへのリンクを含むRenderDocumentを返す方法が示されます。

詳細については、以下を参照してください。

JSONファイルからAPLドキュメントをインポートする(視覚応答)

JSONファイルから既存のAPLドキュメントをインポートすると、オーサリングツールはそのファイルに基づいて新しいドキュメントを作成します。

JSONファイルから視覚応答のAPLドキュメントをインポートするには

  1. 開発者コンソールで、ドキュメントをインポートするスキルを開きます。
  2. 左側のナビゲーションから、マルチモーダル応答をクリックします。
  3. オーサリングツールで作成をクリックします。
  4. アップロードをクリックし、ダイアログボックスにJSONファイルをドラッグするか、参照をクリックしてコンピューター上のJSONファイルを選択します。
  5. アップロードをクリックします。

APLドキュメントのインポート形式

アップロードするJSONファイルは、次のような構造にする必要があります。

{
  "document": {},
  "datasources": {
    "dataSourceName": {}
  },
  "sources": {
    "sourceName": {}
  }
}
プロパティ 説明 必須
document オブジェクト APLドキュメントのJSONが含まれます。
datasources データソースオブジェクトのマップ ドキュメントでテストするデータソースのマップです。 ×
sources ソースオブジェクトのマップ ドキュメントのtypeAPLの場合に適用されます。APL for AudioトランスフォーマーでテストするAPL for Audioドキュメントのマップです。sourcesの使用方法の詳細については、APLとAPL for Audioの統合をテストするを参照してください。 ×

たとえば、次のJSONファイルでは、データソースもソースもないドキュメントがインポートされます。

{
  "document": {
    "type": "APL",
    "version": "2024.3",
    "theme": "dark",
    "import": [],
    "resources": [],
    "styles": {},
    "layouts": {},
    "mainTemplate": {
      "parameters": [
        "payload"
      ],
      "items": [
      ]
    }
  }
}

次の例は、documentdatasourcesのプロパティが両方含まれるファイルを示しています。

{
  "document": {
    "type": "APL",
    "version": "2024.3",
    "theme": "dark",
    "import": [
      {
        "name": "alexa-layouts",
        "version": "1.7.0"
      }
    ],
    "mainTemplate": {
      "parameters": [
        "payload"
      ],
      "item": [
        {
          "type": "AlexaHeadline",
          "id": "PlantHeadline",
          "primaryText": "${payload.headlineTemplateData.properties.textContent.primaryText.text}",
          "headerBackButton": false,
          "headerAttributionImage": "${payload.headlineTemplateData.properties.logoUrl}",
          "headerAttributionPrimacy": true,
          "footerHintText": "${payload.headlineTemplateData.properties.hintText}",
          "backgroundImageSource": "${payload.headlineTemplateData.properties.backgroundImage.sources[0].url}",
          "backgroundColorOverlay": false,
          "speech": "${payload.headlineTemplateData.properties.welcomeSpeech}"
        }
      ]
    },
    "onMount": [
      {
        "type": "SpeakItem",
        "componentId": "PlantHeadline"
      }
    ]
  },
  "datasources": {
    "headlineTemplateData": {
      "type": "object",
      "objectId": "headlineSample",
      "properties": {
        "backgroundImage": {
          "contentDescription": null,
          "smallSourceUrl": null,
          "largeSourceUrl": null,
          "sources": [
            {
              "url": "https://d2o906d8ln7ui1.cloudfront.net/images/templates_v3/headline/HeadlineBackground_Dark.png",
              "size": "large"
            }
          ]
        },
        "textContent": {
          "primaryText": {
            "type": "PlainText",
            "text": "今日の植物トリビアにようこそ"
          }
        },
        "logoUrl": "https://d2o906d8ln7ui1.cloudfront.net/images/templates_v3/logo/logo-modern-botanical-white.png",
        "hintText": "アレクサ、今日の植物トリビアを教えてと言ってみてください。",
        "welcomeSpeechSSML": "<speak><amazon:emotion name='excited' intensity='medium'>今日の植物トリビアにようこそ</amazon:emotion></speak>"
      },
      "transformers": [
        {
          "inputPath": "welcomeSpeechSSML",
          "transformer": "ssmlToSpeech",
          "outputName": "welcomeSpeech"
        }
      ]
    }
  },
  "sources": {}
}

次の例は、APL for Audioドキュメントでテストするデータソースとソースを含むドキュメントを示しています。

別の方法として、オーサリングツールで直接データソースを作成または貼り付けることもできます。

APL Ninjaとドキュメントを同期する

APL Ninjaは、Alexander Martinが開発したAlexa開発者向けの独立したソーシャルプラットフォームです。このプラットフォームの機能を使用して、開発者コンソールとAPL Ninjaの間でAPLドキュメントを同期できます。

ドキュメントを同期する方法については、APL NinjaのSMAPI Integrationのページを参照してください。


このページは役に立ちましたか?

最終更新日: 2025 年 12 月 02 日