項目選択のためのAPLサポート
APLスキルの画面では、ユーザーは特定の項目をさまざまな方法で選択しようとします。
たとえば、ユーザーが「2番目を選んで」と言ったとします。この動作をサポートするには、対話モデルのAMAZON.SelectIntentを、APLドキュメントのSequenceコンポーネントと組み合わせて使用します。
ユーザーは「これを選んで」または「それを選んで」と言います。Anaphor
スロットに入力がある場合、AMAZON.SelectIntent
は照応に応じた選択肢を提供します。
- 序数に応じて選択する
- 照応に応じて選択する
- ListPosition.resolutions.resolutionsPerAuthority
- ListPositionスロットの解決(序数に応じて選択する場合)
- ListPositionスロットの解決(照応に応じて選択する場合)
序数に応じて選択する
APL Sequenceコンポーネントが、対話モデルにAMAZON.SelectIntent
があるスキルで使用されている場合、ユ―ザーが「3番目を選んで」と言うと、スキルにAMAZON.SelectIntent
リクエストが送られます。この場合AMAZON.SelectIntent
は、ListPosition
スロットの(3)の序数に加えて、画面上に3番目の項目が表示されていれば、Sequenceコンポーネントの3番目の位置にあるリスト項目のAPLコンポーネントIDも提供します。つまり、選択の動作はさまざまなサイズのデバイスに応じて異なります。
序数に応じた選択に関連するAMAZON.SelectIntentのプロパティは、次のとおりです。
プロパティ | 型 | 説明 |
---|---|---|
ListPosition | オブジェクト (スロット) |
ユーザーが序数によって項目を選択するときにAMAZON.SelectIntent に入力されるスロットです。 |
ListPosition.value | 文字列 | ユーザーが言及している位置です。たとえば、「2番目を選んで」という発話の場合、ListPosition.value には「2」という値が含まれます。 |
ListPosition.resolutions.resolutionsPerAuthority | コレクション | ListPosition スロットの値として利用可能な解決一式です。APLでは、対象となるのは権限がamz1.er-authority.visual-context に設定されている項目だけです。詳細については、resolutionsPerAuthority objectを参照してください。 |
照応に応じて選択する
ビルトインのAMAZON.SelectIntent
では、照応に応じた選択もできます。ユーザーが「これを選んで」または「それを選んで」と言うと、スキルはAnaphor
スロットに入力されたAMAZON.SelectIntent
を受け取ります。AMAZON.SelectIntent
が呼び出されたときにAPLドキュメントが画面上に表示されている場合、Anaphorスロットの下にあるresolutions.resolutionsPerAuthority
コレクションには、現在のドキュメントにある、上位レベルのAPLコンポーネントのIDが含まれます。この上位レベルのコンポーネントは、視覚化された階層のルートにあるコンポーネントです。これは、項目の詳細表示を見ているユーザーが、その表示内容に基づいて項目を選択する場合に便利です。
AMAZON.SelectIntent
に関連するプロパティは、次のとおりです。
プロパティ | 型 | 説明 |
---|---|---|
Anaphor | オブジェクト (スロット) |
これは、ユーザーが照応によって項目を選択しようとするときにAMAZON.SelectIntent に入力されるスロットです。 |
Anaphor.value | 文字列 | 「これ」や「それ」など、ユーザーが照応に使用する値です。 |
ListPosition.resolutions.resolutionsPerAuthority | コレクション | Anaphor スロットの値として利用可能な解決一式です。この用途の対象となるのは、authority がamz1.er-authority.visual-context に設定されている解決です。 |
ListPosition.resolutions.resolutionsPerAuthority
序数および照応に応じた選択の両方で、ListPosition.resolutions.resolutionsPerAuthority
コレクションにあり、そのauthority
の値がamz1.er -authority.visual-context
に設定されている項目には、次の関連プロパティが含まれます。
プロパティ | 型 | 説明 |
---|---|---|
authority | 文字列 | amz1.er-authority.visual-context に設定します。 |
status | オブジェクト | 解決のステータスを含むオブジェクトです。 |
status.code | 文字列 | ListPosition の解決に成功したときに、ER_SUCCESS_MATCH に設定されるステータスコードです。この解決が失敗したときには、ER_SUCCESS_NO_MATCH と設定されます。 |
values | 配列 | ListPosition スロットの解決済みの値を表す配列です。 |
values.value | オブジェクト | ListPosition スロットの解決された値を表すオブジェクトです。 |
values.value.id | 文字列 | ListPosition.value により識別される序数の位置にあるAPLコンポーネントのIDです。 |
ListPositionスロットの解決(序数に応じて選択する場合)
解決されたListPosition
スロットが3番の位置にあるAMAZON.SelectIntent
の例を次に示します。ER_SUCCESS_MATCH
というステータスコードは、IDが正常に解決されたことを表します。
{
"version": "1.0",
"session": {
//セッション 情報
},
"context": {
"Alexa.Presentation.APL": {
"token": "anydocument",
"version": "AriaRenderer-1.0.209.0",
"componentsVisibleOnScreen": [{
//APL コンテキスト
}]
},
"System": {
//システム 情報
},
"Viewport": {
//Viewport 情報
}
},
"request": {
"type": "IntentRequest",
"requestId": "[RequestId]",
"timestamp": "2018-10-22T03:53:47Z",
"locale": "ja-JP",
"intent": {
"name": "AMAZON.SelectIntent",
"confirmationStatus": "NONE",
"slots": {
"ListPosition": {
"name": "ListPosition",
"value": "3",
"resolutions": {
"resolutionsPerAuthority": [{
"authority": "amz1.er-authority.visual-context",
"status": {
"code": "ER_SUCCESS_MATCH"
},
"values": [{
"value": {
"id": "blue"
}
}]
}]
},
"confirmationStatus": "NONE",
"source": "USER"
},
"Anaphor": {
"name": "Anaphor",
"confirmationStatus": "NONE"
},
"VisualModeTrigger": {
"name": "VisualModeTrigger",
"confirmationStatus": "NONE"
},
"PositionRelation": {
"name": "PositionRelation",
"confirmationStatus": "NONE"
}
}
}
}
}
ListPositionスロットの解決(照応に応じて選択する場合)
AMAZON.SelectIntent
で、APLのIDがthis
の値に対応するAnaphorスロットで解決された例を示します。
{
"version": "1.0",
"session": {
//セッション 情報
},
"context": {
"Alexa.Presentation.APL": {
"token": "anydocument",
"version": "AriaRenderer-1.0.209.0",
"componentsVisibleOnScreen": [{
//APL コンテキスト
}]
},
"System": {
//システム 情報
},
"Viewport": {
//Viewport 情報
}
},
"request": {
"type": "IntentRequest",
"requestId": "[RequestId]",
"timestamp": "2018-10-22T06:14:55Z",
"locale": "ja-JP",
"intent": {
"name": "AMAZON.SelectIntent",
"confirmationStatus": "NONE",
"slots": {
"ListPosition": {
"name": "ListPosition",
"confirmationStatus": "NONE"
},
"Anaphor": {
"name": "Anaphor",
"value": "this",
"resolutions": {
"resolutionsPerAuthority": [{
"authority": "amz1.er-authority.visual-context",
"status": {
"code": "ER_SUCCESS_MATCH"
},
"values": [{
"value": {
"id": "bluecheesedetail"
}
}]
}]
},
"confirmationStatus": "NONE",
"source": "USER"
},
"VisualModeTrigger": {
"name": "VisualModeTrigger",
"confirmationStatus": "NONE"
},
"PositionRelation": {
"name": "PositionRelation",
"confirmationStatus": "NONE"
}
}
}
}
}
最終更新日: 2020 年 10 月 25 日