APLドキュメントのインポートと書き出し
APLドキュメントを書き出して、ドキュメントとデータソースを含むJSONファイルを作成できます。以前に書き出したドキュメントをインポートして、新しいドキュメントを作成することもできます。
以下のセクションでは、APLドキュメント全体を書き出す方法とインポートする方法について説明します。また、Lottie形式のアニメーションをインポートすることもできます。Lottieの詳細については、Lottieアニメーションのインポートを参照してください。
APLドキュメントをJSONに書き出す
開発者コンソールからドキュメントを書き出すと、ドキュメント、データ、ソースが結合され、トップレベルにdocument、datasources、sourcesの各プロパティを含む単一のJSONファイルにまとめられます。
{
"document": {},
"datasources": {
"dataSourceName": {}
},
"sources": {
"sourceName": {}
}
}
オーサリングツール以外を使用してこのファイルを変更した場合は、後で新しいAPLドキュメントとしてファイルを再度インポートできます。
ドキュメントを書き出すには
- 開発者コンソールで、ドキュメントを保存したスキルを開きます。
- 左側のナビゲーションから、マルチモーダル応答をクリックします。
- オーディオまたは視覚をクリックすると、既存のドキュメントの一覧が表示されます。
- 一覧でドキュメントを探し、ダウンロードをクリックします。
オーサリングツールでドキュメントを編集中にドキュメントを書き出すこともできます。右上隅のコードを書き出しボタン(
)をクリックします。
書き出したドキュメントをスキルコードに使用する
APLドキュメントをJSONファイルに書き出したら、JSONをスキルコードにコピーして、RenderDocumentディレクティブでドキュメントを返すことができます。
RenderDocumentの詳細については、以下を参照してください。
JSONを書き出してコードにコピーする代わりに、RenderDocumentを返すときに開発者コンソールに保存したドキュメントへのリンクを指定できます。コードにJSONを組み込む代わりに応答にリンクすることで、コードが簡易化され、スキルデザイナーはコードに依存することなく開発者コンソールで応答を作成できます。
開発者コンソールでスキルと統合オプションを使用すると、コード例が生成され、ドキュメントへのリンクを含むRenderDocumentを返す方法が示されます。
詳細については、以下を参照してください。
- 視覚応答: 開発者コンソールに保存されたAPLドキュメントへのリンク(Alexa.Presentation.APL)
- オーディオ応答: 開発者コンソールに保存されたAPLAドキュメントへのリンク(Alexa.Presentation.APLA)
JSONファイルからAPLドキュメントをインポートする(視覚応答)
JSONファイルから既存のAPLドキュメントをインポートすると、オーサリングツールはそのファイルに基づいて新しいドキュメントを作成します。
JSONファイルから視覚応答のAPLドキュメントをインポートするには
- 開発者コンソールで、ドキュメントをインポートするスキルを開きます。
- 左側のナビゲーションから、マルチモーダル応答をクリックします。
- オーサリングツールで作成をクリックします。
- アップロードをクリックし、ダイアログボックスにJSONファイルをドラッグするか、参照をクリックしてコンピューター上のJSONファイルを選択します。
- アップロードをクリックします。
APLドキュメントのインポート形式
アップロードするJSONファイルは、次のような構造にする必要があります。
{
"document": {},
"datasources": {
"dataSourceName": {}
},
"sources": {
"sourceName": {}
}
}
| プロパティ | 型 | 説明 | 必須 |
|---|---|---|---|
document |
オブジェクト | APLドキュメントのJSONが含まれます。 | ◯ |
datasources |
データソースオブジェクトのマップ | ドキュメントでテストするデータソースのマップです。 | × |
sources |
ソースオブジェクトのマップ | ドキュメントのtypeがAPLの場合に適用されます。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": [
]
}
}
}
次の例は、documentとdatasourcesのプロパティが両方含まれるファイルを示しています。
{
"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 日