開発者コンソール

GetBrowseNodeItemsディレクティブ


GetBrowseNodeItemsディレクティブ

選択操作があった場合に、再生を開始するのではなく検索結果の別のレイヤーを表示するよう設定されている検索結果画面では、ユーザーが検索結果を選択すると、対応する「ブラウズノードグループ」のアイテムを取得するためのGetBrowseNodeItemsディレクティブがVideoContentProvider APIからLambdaに送信されます。 通常、このディレクティブは、ユーザーがデバイスでウォッチリスト、ビデオライブラリ、録画の閲覧を選択するときに使用されます。

GetBrowseNodeItemsディレクティブの処理

GetDisplayableItemsResponseでは、検索結果ページやその他のテンプレート(ランディングページなど)を設定するためのアイテムが提供されます。このテンプレートには、閲覧および選択できるアイテムが含まれています。

検索結果を画面に表示する際は、同様のアイテムを1つの論理グループにまとめることができます。たとえば「録画を見せて」という発話であれば、テレビ番組と映画を別々のグループにまとめることが可能です。デバイス上の表示を左右するのは、GetDisplayableItemsResponseselectionActionの値です。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
(必須)

この呼び出しで返される結果でpageTokenが必要となる最小件数。pageTokenは次の結果を取得するためのもので、新しいアイテムを取得する際にこれと一緒に返されたアイテムの件数がminResultLimitフィールドよりも少ない場合、AlexaはpageTokenを無視し、受信したアイテムをそのまま表示します。

pageTokenを使用して次の結果を取得するのは、アイテムの件数がminResultLimitの値以上である場合のみです。ただし、アイテムの件数がminResultLimitを超える場合は、maxResultLimitが上限となります。アイテムの件数がmaxResultLimitを超えると、maxResultLimitを超えたアイテムはAlexaによって破棄されます。

例: 8

整数
maxResultLimit
(必須)

返される結果の最大件数(上限)。詳細については、minResultLimitフィールドの説明を参照してください。

例: 25

整数
mediaIdentifier
(必須)

mediaItemの識別子。mediaIdentifierオブジェクトからの画像サイズデータの取得を参照してください。

オブジェクト
id
(必須)

ビデオアイテムの識別子。後続のGetDisplayableItemsMetadataまたはGetPlayableItemsMetadataの呼び出しで、表示または再生に関連したメタデータ情報を取得する目的で使用されます。この識別子は、Alexaからは認識できず、メタデータ情報を照会する際にそのまま使用されます。

文字列

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
(必須)

検索結果として画面に表示されるビデオのmediaIdentifierのリスト。

リスト
mediaIdentifiers
(必須)

メディアのid値のリストが格納されます。

配列
id
(必須)

ビデオアイテムの識別子。後続のGetDisplayableItemsMetadataまたはGetPlayableItemsMetadataの呼び出しで、表示または再生に関連したメタデータ情報を取得する目的で使用されます。この識別子は、Alexaからは認識できず、メタデータ情報を照会する際にそのまま使用されます。

文字列