Alexa.ChannelControllerインターフェース3


Alexa.ChannelControllerインターフェース3

Alexa.ChannelControllerインターフェースをAlexaスマートホームスキルに実装すると、ユーザーはエンターテイメントデバイスやビデオデバイスのチャンネルを変えたり増やしたりできます。エンターテイメントデバイスのスキルの詳細については、エンターテイメントデバイス用のスマートホームスキルを作成するおよびビデオスキルとはを参照してください。

ChannelControllerインターフェースがサポートする言語については、Alexaインターフェースとサポートしている言語の一覧を参照してください。メッセージプロパティの定義については、Alexaインターフェースのメッセージとプロパティを参照してください。

発話

Alexa.ChannelControllerインターフェースではプリビルド音声対話モデルを使用します。ユーザーが次のいずれかの発話をしたら、Alexaがそれに対応するディレクティブをスキルに送信します。

以下に、ユーザーの発話の例を示します。

أليكسا، حطّي قناة الإخباريّة
أليكسا، حطّي الإخباريّة
أليكسا، غيّري لقناة الإخبارية
أليكسا، حطّي القناة الثانية
أليكسا، غيّري للقناة الثانية
أليكسا، حطّي القناة اللي قبلها
أليكسا، حطّي القناة اللي بعدها

Alexa, go to discovery.
Alexa, go to channel A B C.
Alexa, go to channel thirteen.
Alexa, watch N B C.
Alexa, watch channel thirteen.
Alexa, channel up on the TV.
Alexa, channel down on the TV.

Alexa, schalt auf R T L.
Alexa, geh zum fernsehsender R T L.
Alexa, geh zu kanal drei.
Alexa, spiel R T L zwei ab.
Alexa, kanal drei anschauen.
Alexa, vorheriger Sender auf Wohnzimmer TV.
Alexa, einen Sender nach unten auf Wohnzimmer TV.

Alexa, cambia a E T B.
Alexa, cambia canal a T P D.
Alexa, cambia a canal dos.
Alexa, ver la sexta.
Alexa, pon canal dos.

Alexa, va sur france deux.
Alexa, va sur france cinq.
Alexa, va sur la treize.
Alexa, mets direct huit.
Alexa, mets la chaîne virgin radio T V.

Alexa, star plus पे जाओ
Alexa, channel sony पर जाओ
Alexa, channel दस पे जाओ
Alexa, fox देखो

Alexa, vai su italia uno.
Alexa, vai su animal planet.
Alexa, vai al canale venti.
Alexa, fammi vedere canale italia.
Alexa, metti il canale dieci.

Alexa, vá para globonews.
Alexa, vá para o canal globonews.
Alexa, vá para o canal dois.
Alexa, assistir globonews.
Alexa, assistir canal um.

アレクサ、nhkに行って
アレクサ、nhkに切り替えて
アレクサ、三チャンネルをつけて
アレクサ、at xを見せて
アレクサ、チャンネル十を見せて
アレクサ、次のチャンネル
アレクサ、前のチャンネルに戻って

プロパティとオブジェクト

Alexa.ChannelControllerインターフェースには、次のプロパティとオブジェクトが含まれます。

出力可能なプロパティ

Alexa.ChannelControllerインターフェースでは、プライマリプロパティとしてchannelプロパティを使用します。検出応答で、サポートするプロパティを指定します。

Channelプロパティ

channelプロパティは、数字、コールサインまたは系列コールサインでチャンネルを指定します。channelプロパティ値はオブジェクトです。

以下は、channelプロパティの例です。

クリップボードにコピーされました。

{
   "name":"channel",
   "value": {
     "number": "9",
     "callSign": "KCTS-TV",
     "affiliateCallSign": "KCTS"
  }
}

次の表は、Channelオブジェクトの定義を示しています。

プロパティ 説明 必須

number

TVチャンネルの番号(1や4など)です。

文字列

callSign

チャネルのコールサイン(NHKなど)です。

文字列

affiliateCallSign

チャンネルの現地の系列コールサイン(JOBH-DTVなど)です。

文字列

uri

チャンネルのURI(entity://provider/channel/12307など)です。

文字列

ChannelMetadataオブジェクト

ChannelMetadataプロパティにはチャンネルに関する追加情報を指定します。

以下は、ChannelMetadataオブジェクトの例です。

クリップボードにコピーされました。

{
   "name":"channelMetadata",
   "value": {
     "name": "チャンネルの別名",
     "image": "url for image"
  }
}

以下の表は、channelMetadataオブジェクト定義の一覧です。

プロパティ 説明 必須

name

チャンネルの別名(「The CW」など)です。

文字列

image

チャンネルの画像またはロゴのURLです。

文字列

Lineupオブジェクト

ライブTVプロバイダー(多チャンネル映像番組配信事業者(MVPD)など)は、Alexaスキルを作成してユーザーごとまたは郵便番号ごとに異なるチャンネルラインナップを提供することができます。ラインナップとは、TV局、アフィリエイト、チャンネル番号の組み合わせに基づいたTVチャンネルのセットです。

Alexaは、Lineupオブジェクトに定義されたパラメーターに基づいて、TVチャンネルラインナップを探します。ラインナップ情報を、検出応答に指定します。ラインナップを変更した場合、AddOrUpdateReportを送信する必要があります。

以下は、Lineupオブジェクトの例です。

クリップボードにコピーされました。

{
    "lineup": {
        "operatorName": "コム神戸社",
        "type": "multiSystemOperator",
        "lineupName": "コミュニケーション神戸南 - デジタル",
        "postalCode": "6500000"
    }
}

以下の表は、Lineupオブジェクト定義の一覧です。

プロパティ 説明 必須

lineupName

プロバイダーラインナップ名です。

文字列

operatorName

TVプロバイダー名です。

文字列

type

ラインナップの種類です。
有効な値は、overTheAirmultiSystemOperatorstreamingOperatorです。

文字列

postalCode

ユーザーが住む場所の郵便番号を指定します。

文字列

検出

Alexa.ChannelControllerをサポートするエンドポイントを指定するには、Alexa.Discoveryの標準検出メカニズムを使用します。

Alexaからスキルに状態レポートリクエストが送信されたら、レポートするプロパティのretrievabletrueに設定します。変更レポートでAlexaにプロアクティブにレポートするプロパティのproactivelyReportedtrueに設定します。

TVSTREAMING_DEVICEGAME_CONSOLEなどの適切な表示カテゴリーを使用します。表示カテゴリーの一覧は、表示カテゴリーを参照してください。

Alexaにデバイスの健全性を通知する場合、Alexa.EndpointHealthインターフェースも実装してください。

検出応答の例

以下は、Alexa.ChannelControllerインターフェース、Alexa.PowerControllerインターフェース、Alexa.EndpointHealthインターフェースをサポートするテレビのDiscover.Responseメッセージの例です。テレビに推奨されるすべてのインターフェースの一覧については、スマートホームスキル用のデバイステンプレートを参照してください。

ラインナップを使用した検出応答の例

以下は、ユーザーや郵便番号ごとにさまざまなチャンネルラインナップをサポートするMVPDのDiscover.Responseメッセージの例です。この例では、Alexa.ChannelControllerインターフェースにラインナップ情報が含まれています。

AddOrUpdateReport

ユーザーが新しいエンドポイントをアカウントに追加した場合や、既存のエンドポイントに変更を加えた場合、Alexaイベントゲートウェイに対してAlexa.Discovery.AddOrUpdateReportメッセージをプロアクティブに送信します。ユーザーアカウントに関連付けられたすべてのエンドポイントか、新規または更新されたエンドポイントのみを含めることができます。スキルの実装内容に応じて選択できます。詳細については、AddOrUpdateReportを参照してください。

AddOrUpdateReportの例

以下は、新しいエンドポイントに対するAddOrUpdateReportメッセージの例です。

クリップボードにコピーされました。

{
    "event": {
        "header": {
            "namespace": "Alexa.Discovery",
            "name": "AddOrUpdateReport",
            "payloadVersion": "3",
            "messageId": "一意の識別子、バージョン4 UUIDが望ましい"
        },
        "payload": {
            "endpoints": [{
                "endpointId": "新しいエンドポイントの一意ID",
                "manufacturerName": "エンドポイントのメーカー名",
                "description": "Alexaアプリに表示される説明",
                "friendlyName": "リビングのテレビ",
                "displayCategories": ["TV"],
                "additionalAttributes": {
                    "manufacturer": "エンドポイントのメーカー名",
                    "model": "デバイスのモデル",
                    "serialNumber": "デバイスのシリアル番号",
                    "firmwareVersion": "デバイスのファームウェアバージョン",
                    "softwareVersion": "デバイスのソフトウェアバージョン"
                },
                "capabilities": [{
                        "type": "AlexaInterface",
                        "interface": "Alexa.ChannelController",
                        "version": "3",
                        "properties": {
                            "supported": [{
                                "name": "channel"
                            }],
                            "proactivelyReported": true,
                            "retrievable": true
                        }
                    },
                    {
                        "type": "AlexaInterface",
                        "interface": "Alexa.EndpointHealth",
                        "version": "3.1",
                        "properties": {
                            "supported": [{
                                "name": "connectivity"
                            }],
                            "proactivelyReported": true,
                            "retrievable": true
                        }
                    },
                    {
                        "type": "AlexaInterface",
                        "interface": "Alexa",
                        "version": "3"
                    }
                ]
            }],
            "scope": {
                "type": "BearerToken",
                "token": "access-token-from-Amazon"
            }
        }
    }
}

ディレクティブ

Alexaは次のAlexa.ChannelControllerインターフェースディレクティブをスキルに送信します。

ChangeChannelディレクティブ

ChangeChannelディレクティブをサポートすることで、ユーザーはチャンネル番号やコールサインを指定してデバイスのチャンネルを変えることができます。

以下は、ユーザーの発話の例です。

Alexa, change channel to two hundred on Living Room TV.

Alexa, schalte den Wohnzimmer TV auf Kanal zweihundert.

アレクサ、チャンネル4に変えて

ChangeChannelディレクティブの例

以下は、Alexaがスキルに送信するChangeChannelディレクティブの例です。

{
  "directive": {
    "header": {
      "namespace": "Alexa.ChannelController",
      "name": "ChangeChannel",
      "messageId": "一意のバージョン4 UUID",
      "correlationToken": "opaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2.0ベアラートークン"
      },
      "endpointId": "エンドポイントID",
      "cookie": {}
    },
    "payload": {
      "channel": {
        "number": "9",
        "callSign": "KCTS-TV",
        "affiliateCallSign": "KCTS",
        "uri": "channel uri"
      },
      "channelMetadata": {
        "name": "チャンネルの別名",
        "image": "url for image"
      }
    }
  }
}

ChangeChannelディレクティブのペイロード

次の表は、ChangeChannelディレクティブのペイロード詳細です。

プロパティ 説明
channel デバイスの変更後のチャンネルです。 Channelオブジェクト
channelMetadata デバイスの変更後のチャンネルに関する追加情報です。 ChannelMetadataオブジェクト

ChangeChannel応答

ChangeChannelディレクティブを正しく処理したら、Alexa.Responseイベントを使用して応答します。contextオブジェクトに、変更されたすべてのプロパティの値を含めます。

以下は、ChangeChannel応答の例です。

クリップボードにコピーされました。

{
  "event": {
    "header": {
      "namespace": "Alexa",
      "name": "Response",
      "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
      "correlationToken": "リクエストに一致するopaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint":{
      "endpointId": "エンドポイントID"
    },
    "payload": {}
  },
  "context": {
    "properties": [
      {
        "namespace": "Alexa.ChannelController",
        "name": "channel",
        "value": {
          "number": "9",
          "callSign": "KCTS-TV",
          "affiliateCallSign": "KCTS"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.PowerController",
        "name": "powerState",
        "value": "ON",
        "timeOfSample": "2017-02-03T16:18:40.12Z",
        "uncertaintyInMilliseconds": 500
      }
    ]
  }
}

ChangeChannelディレクティブのエラー処理

ChangeChannelディレクティブを正常に処理できず、エラーがビデオ固有のものである場合、Alexa.Video.ErrorResponseイベントで応答します。一般的なエラーの場合、汎用のAlexa.ErrorResponseイベントで応答します。

SkipChannelsディレクティブ

SkipChannelsディレクティブをサポートすると、ユーザーは段階的にデバイスのチャンネルを変更できます。昇順に変更する場合は正の数、降順に変更する場合は負の数を使用できます。

以下は、ユーザーの発話の例です。

Alexa, next channel on Living Room TV
Alexa, channel up on Living Room TV
Alexa, channel down on Living Room TV

Alexa, nächster Sender auf Wohnzimmer TV.
Alexa, vorheriger Sender auf Wohnzimmer TV.
Alexa, einen Sender nach unten auf Wohnzimmer TV.

アレクサ、テレビを次のチャンネルにして
アレクサ、次のチャンネル
アレクサ、前のチャンネルに戻って

SkipChannelsディレクティブの例

以下は、Alexaがスキルに送信するSkipChannelsディレクティブの例です。

{
  "directive": {
    "header": {
      "namespace": "Alexa.ChannelController",
      "name": "SkipChannels",
      "messageId": "一意のバージョン4 UUID",
      "correlationToken": "opaque相関トークン",
      "payloadVersion": "3"
    },
    "payload": {
      "channelCount" : 1
    }
  }
}

SkipChannelsディレクティブのペイロード

次の表は、SkipChannelsディレクティブのペイロードの詳細を示しています。

プロパティ 説明
channelCount 一度に変更するチャンネルの数です。負の数では降順、正の数では昇順に変更します。
有効な値は、–1と1です。
整数

SkipChannels応答

SkipChannelsディレクティブを正しく処理したら、Alexa.Responseイベントを使用して応答します。contextオブジェクトに、変更されたすべてのプロパティの値を含めます。

以下は、SkipChannels応答の例です。

クリップボードにコピーされました。

{
  "event": {
    "header": {
      "namespace": "Alexa",
      "name": "Response",
      "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
     "correlationToken": "リクエストに一致するopaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint":{
      "endpointId": "エンドポイントID"
    },
    "payload": {}
  },
  "context": {
    "properties": [
      {
        "namespace": "Alexa.ChannelController",
        "name": "channel",
        "value": {
          "number": "7",
          "callSign": "KIRO-TV",
          "affiliateCallSign": "KIRO"
        },
        "timeOfSample": "2017-02-03T16:25:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.PowerController",
        "name": "powerState",
        "value": "ON",
        "timeOfSample": "2017-02-03T16:18:40.12Z",
        "uncertaintyInMilliseconds": 500
      }
    ]
  }
}

SkipChannelsディレクティブのエラー処理

SkipChannelsディレクティブを正常に処理できず、エラーがビデオ固有のものである場合、Alexa.Video.ErrorResponseイベントで応答します。一般的なエラーの場合、汎用のAlexa.ErrorResponseイベントで応答します。

状態レポート

Alexaはエンドポイントの状態についての情報をリクエストするために、ReportStateディレクティブを送信します。AlexaがReportStateディレクティブを送信したら、それに対する応答としてStateReportイベントを送信します。この応答には、contextオブジェクトのすべてのretrievableプロパティの現在の状態を含めます。retrievableプロパティは検出応答で特定します。状態レポートの詳細については、状態および変更レポートについてを参照してください。

StateReport応答の例

クリップボードにコピーされました。

{
  "event": {
    "header": {
      "namespace": "Alexa",
      "name": "StateReport",
      "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
      "correlationToken": "リクエストに一致するopaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2.0ベアラートークン"
      },
      "endpointId": "エンドポイントID"
    },
    "payload": {}
  },
  "context": {
    "properties": [
      {
        "namespace": "Alexa.ChannelController",
        "name": "channel",
        "value": {
          "number": "7",
          "callSign": "KIRO-TV",
          "affiliateCallSign": "KIRO"
        },
        "timeOfSample": "2017-02-03T17:00:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.PowerController",
        "name": "powerState",
        "value": "ON",
        "timeOfSample": "2017-02-03T16:18:40.12Z",
        "uncertaintyInMilliseconds": 500
    },
    {
        "namespace": "Alexa.EndpointHealth",
        "name": "connectivity",
        "value": {
            "value": "OK"
        },
        "timeOfSample": "2017-02-03T16:15:00.00Z",
        "uncertaintyInMilliseconds": 0
    }
    ]
  }
}

変更レポート

エンドポイントの状態の変化をプロアクティブにレポートするために、ChangeReportイベントを送信します。プロアクティブにレポートするプロパティは検出応答で特定します。変更レポートの詳細については、状態および変更レポートについてを参照してください。

ChangeReportイベントの例

クリップボードにコピーされました。

{
    "event": {
        "header": {
            "namespace": "Alexa",
            "name": "ChangeReport",
            "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
            "payloadVersion": "3"
        },
        "endpoint": {
            "scope": {
                "type": "BearerToken",
                "token": "OAuth2.0ベアラートークン"
            },
            "endpointId": "エンドポイントID"
        },
        "payload": {
            "change": {
                "cause": {
                    "type": "VOICE_INTERACTION"
                },
                "properties": [{
                    "namespace": "Alexa.ChannelController",
                    "name": "channel",
                    "value": {
                        "number": "9",
                        "callSign": "KCTS-TV",
                        "affiliateCallSign": "KCTS"
                    },
                    "timeOfSample": "2017-02-03T16:20:50.52Z",
                    "uncertaintyInMilliseconds": 0
                }]
            }
        }
    },
    "context": {
        "properties": [{
                "namespace": "Alexa.PowerController",
                "name": "powerState",
                "value": "ON",
                "timeOfSample": "2017-02-03T16:18:40.12Z",
                "uncertaintyInMilliseconds": 500
            },
            {
                "namespace": "Alexa.EndpointHealth",
                "name": "connectivity",
                "value": {
                    "value": "OK"
                },
                "timeOfSample": "2017-02-03T16:15:00.00Z",
                "uncertaintyInMilliseconds": 0
            }
        ]
    }
}


このページは役に立ちましたか?

最終更新日: 2024 年 11 月 12 日