データソース(APL for Audio)
データソースとは、APLドキュメントにバインドできるデータを定義するJSON構造のことです。Alexa.Presentation.APLA.RenderDocument
ディレクティブを使ってAPLドキュメントをAlexaに送信するときに、1つ以上のデータソースを含めることができます。APLドキュメントのパラメーターにデータソースを含めるとデータソースがバインドされます。その後で、データバインディング式を使用して、データをドキュメント内のコンポーネントプロパティにバインドできます。
RenderDocumentディレクティブでデータソースを送信する
APL for Audioの場合、Alexa.Presentation.APLA.RenderDocument
ディレクティブのdatasources
オブジェクトとしてAlexaにデータソースを渡します。このdatasources
オブジェクトには、各データソースを表すオブジェクトが含まれています。
この例では、RenderDocument
ディレクティブを使用したスキル応答を示しています。ドキュメントと「myDocumentData」という名前のデータソースがAlexaに渡されます。ドキュメントの内容は、簡潔に示すために省略しています。
{
"version": "1.0",
"response": {
"outputSpeech": {
"type": "SSML",
"ssml": "<speak>これは例です</speak>"
},
"sessionAttributes": {},
"directives": [
{
"type": "Alexa.Presentation.APLA.RenderDocument",
"token": "developer-provided-string",
"document": {
"type": "APLA",
"version": "0.91",
"mainTemplate": {
"parameters": [
"payload"
],
"item": {}
}
},
"datasources": {
"myDocumentData": {
"text": "これは単純な例です。",
"user": {
"name": "太郎"
}
}
}
}
]
}
}
データソースをドキュメントにバインドする
データバインディング式を使用して、データソースのデータをAPLドキュメントのコンポーネントプロパティにバインドします。
データソースのデータをドキュメントのコンポーネントプロパティにバインドする方法
payload
と呼ばれるmainTemplate.parameters
配列のパラメーターを宣言します。これにより、datasources
オブジェクト全体が「payload」パラメーターにバインドされます。- コンポーネントプロパティで、構文
${payload.dataSourceName.propertyName}
を使用してデータソースプロパティを参照します。
たとえば、次のdatasources
オブジェクトに2つのデータソースがあるとします。
{
"myDocumentData": {
"text": "これは単純な例です",
"user": {
"name": "太郎"
}
},
"myDocumentData2": {
"property": "これはデータソース内の2つ目のデータソースです"
}
}
この例では、「name」プロパティの値にアクセスするデータバインディング式は、${payload.myDocumentData.user.name}
です。
payload
パラメーターを使用してdatasources
オブジェクト全体をドキュメントにバインドします。これは、画面付きデバイス向けのAPL 1.3とは異なります。APL 1.3では、mainTemplate.parameters
パラメーターをデータソースの名前にバインドできます。関連トピック
最終更新日: 2021 年 10 月 11 日