GetBrowseNodeItemsディレクティブ
選択操作があった場合に、再生を開始するのではなく検索結果の別のレイヤーを表示するよう設定されている検索結果画面では、ユーザーが検索結果を選択すると、対応する「ブラウズノードグループ」のアイテムを取得するためのGetBrowseNodeItemsディレクティブがVideoContentProvider APIからLambdaに送信されます。 通常、このディレクティブは、ユーザーがデバイスでウォッチリスト、ビデオライブラリ、録画の閲覧を選択するときに使用されます。
- GetBrowseNodeItemsの発話
- GetBrowseNodeItemsディレクティブの処理
- GetBrowseNodeItemsの例
- ペイロードの説明
- Lambdaのレスポンス
- レスポンスの例
- ペイロードの説明
GetBrowseNodeItemsの発話
GetBrowseNodeItemsディレクティブが送信される一般的な発話には、以下のようなものがあります。
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| 次のページを取得 認定に必須 | Next | 次のページの結果が画面に表示されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| 次のページを取得 認定に必須 | prochain(e) suivant(e) next | 次のページの結果が画面に表示されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| 次のページを取得 認定に必須 | prochain(e) suivant(e) next | 次のページの結果が画面に表示されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| 次のページを取得 認定に必須 | nächste nächstes das nächste spring/geh vor spring/geh vorwärts vor überspring das eins weiter/vorwärts weiter spring nach vorn spring nach vorn auf [AppName]/[DeviceBrand] nächstes im [DeviceLocation] nächstes auf [DeviceLocation]? [DeviceType]/[DeviceBrand] gib mir das nächste von [AppName] nächstes auf allen [DeviceType] | 次のページの結果が画面に表示されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| 次のページを取得 認定に必須 | [GroupDeviceBrand] [HomeAutomationType] पर अगला लगाओ[GroupDeviceBrand] पर अगला लगाओ[GroupDeviceBrand] वाले [HomeAutomationType] पर अगला चलाना[AppName] पर इसके बाद वाला दो[AppName] पर मुझे next वाला दे देनाnext recipe अगली recipe[DeviceLocation] पर इसके बाद वाला दो[LocationNonSpecificQuantity] अगला चलाओ अगला/next [Episode] play करो[DeviceLocation] पर DeviceBrand अगला वाला दो | 次のページの結果が画面に表示されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| 次のページを取得 認定に必須 | prossima / seguente / avanti / salta / successivo | 次のページの結果が画面に表示されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| 次のページを取得 認定に必須 | 次 スキップ 次に行って[DeviceLocation]で次に行って[DeviceLocation]の[DeviceBrand]で次に行って[LocationNonSpecificQuantity]で次を再生[Episode]を再生して[VideoName]の[Episode]を再生[DeviceBrand]で再生 | 次のページの結果が画面に表示されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| 次のページを取得 認定に必須 | próximo/próxima | 次のページの結果が画面に表示されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| 次のページを取得 認定に必須 | siguiente salta muestra el siguiente siguiente en el sonos próxima en el jardín | 次のページの結果が画面に表示されます。 | 
GetBrowseNodeItemsディレクティブの処理
GetDisplayableItemsResponseでは、検索結果ページやその他のテンプレート(ランディングページなど)を設定するためのアイテムが提供されます。このテンプレートには、閲覧および選択できるアイテムが含まれています。
検索結果を画面に表示する際は、同様のアイテムを1つの論理グループにまとめることができます。たとえば「録画を見せて」という発話であれば、テレビ番組と映画を別々のグループにまとめることが可能です。デバイス上の表示を左右するのは、GetDisplayableItemsResponseのselectionActionの値です。selectionActionの値によって、どのようにアイテムをグループ化するかが決まります。
ユーザーがグループを選択すると(「アレクサ、<X>を選択して」など)、そのグループのさらに詳しい結果を確認することができます。グループが選択されると、そのグループのアイテムを取得するためにAlexaからGetBrowseNodeItemsが送信されます。
ブラウズノードグループの動作を実際に確認するために、Echo Showに向かって「プライム・ビデオを開いて」と言ってみましょう。「ビデオホーム」と発話して、「プライム・ビデオ」スキルをタップしても構いません。次のような一連のブラウズノードグループが画面に表示されます。
ノード(カテゴリー)をタップするか、または「アレクサ、Prime映画を選択して」と言います。ユーザーが特定のブラウズノードアイテムをドリルダウンできるよう、AlexaからGetBrowseNodeItemsディレクティブが送信されます。デバイス上の表示は、(Lambdaから送信されるGetDisplayableItemsMetadataResponseの)selectionActionの値によって異なります。
- 
    selectionActionの値がBROWSEの場合、ユーザーがデバイスでこのアイテムを選択したら、さらに詳しい検索結果を画面に表示する必要があります。ユーザーがカテゴリーを選択すると、Alexaは詳細なmediaIdentifiersを取得するためにGetBrowseNodeItemsディレクティブを送信し、さらにそれらのアイテムの結果を画面に表示するためにGetDisplayableItemsMetadataディレクティブを送信します。
- 
    selectionActionフィールドの値がPLAYに設定されている場合は、ユーザーが選択したアイテムを再生する必要があります。この場合は、AlexaからGetPlayableItemsMetadataディレクティブが送信されます。
GetBrowseNodeItemsの例
GetBrowseNodeItemsディレクティブの例を次に示します。
{
    "directive": {
        "header": {
            "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
            "messageId": "0f918d6e-ebae-48f1-a237-13c6f5b9f5da",
            "name": "GetBrowseNodeItems",
            "namespace": "Alexa.VideoContentProvider",
            "payloadVersion": "3"
        },
        "endpoint": {
            "scope": {
                "type": "BearerToken",
                "token": "access-token-from-skill"
            },
            "endpointId": "videoDevice-001",
            "cookie": {
            }
        },
        "payload": {
            "minResultLimit": 8,
            "maxResultLimit": 25,
            "mediaIdentifier": {
                "id": "recordingId://provider1.dvr.rp.1234-2345-63434-asdf"
            }
        }
    }
}
ペイロードの説明
次の表は、GetBrowseNodeItemsコードサンプルのpayloadフィールドについて説明しています。
| フィールド | 説明 | データ型 | 
|---|---|---|
| minResultLimit(必須) | この呼び出しで返される結果で 
 例:  | 整数 | 
| maxResultLimit(必須) | 返される結果の最大件数(上限)。詳細については、 例:  | 整数 | 
| mediaIdentifier(必須) | 
 | オブジェクト | 
| id(必須) | ビデオアイテムの識別子。後続の | 文字列 | 
Lambdaのレスポンス
GetBrowseNodeItemsディレクティブを受信したら、表示する検索結果に関する基本的なメタデータ(リクエストされたグループに存在するアイテムのIDのリストなど)をLambdaのレスポンスに含める必要があります。レスポンスは、GetDisplayableItemsと同様です。さらに情報が必要なときは、Alexaから続けてGetDisplayableItemsMetadataディレクティブが送信されます。
レスポンスの例
Lambdaから送信されるGetBrowseNodeItemsResponseの例を次に示します。
{
    "event": {
        "header": {
            "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
            "messageId": "5f0a0546-caad-416f-a617-80cf083a05cd",
            "name": "GetBrowseNodeItemsResponse",
            "namespace": "Alexa.VideoContentProvider",
            "payloadVersion": "3"
        },
        "payload": {
            "nextToken": "fvkjbr20dvjbkwOpqStr",
            "mediaItems": [
                {
                    "mediaIdentifier": {
                        "id": "recordingId://provider1.dvr.rp.1234-2345-63434-asdf"
                    }
                },
                {
                    "mediaIdentifier": {
                        "id": "recordingId://provider1.dvr.rp.1234-2345-63434-asdf"
                    }
                }
            ]
        }
    }
}
ペイロードの説明
次の表は、GetBrowseNodeItemsResponseコードサンプルのpayloadフィールドについて説明しています。
| フィールド | 説明 | データ型 | 
|---|---|---|
| nextToken(省略可能) | 次の結果セットを取得するためのトークン。プロバイダーから送信される不透明型の文字列で、後続の検索リクエストで返されます。 | 文字列 | 
| mediaItems(必須) | 検索結果として画面に表示されるビデオの | リスト | 
| mediaIdentifiers(必須) | メディアの | 配列 | 
| id(必須) | ビデオアイテムの識別子。後続の | 文字列 | 

