Alexa.ChannelControllerインターフェース



Alexa.ChannelControllerインターフェース

Alexa.ChannelControllerインターフェースは、エンターテイメントデバイス用のチャンネルを変更または加算するために使用するディレクティブを表示します。

ChannelControllerインターフェースでサポートされているロケールについては、機能インターフェースの一覧を参照してください。

発話

Alexa.ChannelControllerインターフェースを使用する場合、音声対話モデルは既にビルドされています。以下に、ユーザーの発話の例を示します。

Alexa, change the channel to 200 on the TV.
Alexa, change the channel to PBS on the cable box.
Alexa, next channel on the TV.
Alexa, channel up on the TV.
Alexa, channel down on the TV.

ユーザーがこのような発話をしたら、Alexaがそれに対応するディレクティブをスキルに送信します。

ディレクティブ

ChangeChannel

チャンネル番号やコールサインを指定してチャンネルを変更するリクエストです。

ユーザー: アレクサ、デバイスのチャンネルを200に変えて
ユーザー: Alexa, change channel to 200 on device

ユーザー: アレクサ、デバイスのチャンネルをNHKに変えて
ユーザー: Alexa, change channel to PBS on device

リクエストの例:

{
  "directive": {
    "header": {
      "namespace": "Alexa.ChannelController",
      "name": "ChangeChannel",
      "messageId": "abc-123-def-456",
      "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "access-token-from-skill"
      },
      "endpointId": "device-001",
      "cookie": {

      }
    },
    "payload": {
      "channel": {
          "number": "1234",
          "callSign": "KSTATION1",
          "affiliateCallSign": "KSTATION2",
          "uri": "someUrl"
      },
      "channelMetadata": {
          "name": "チャンネルの別名",
          "image": "urlToImage"
      }
    }
  }
}

ペイロードの詳細

フィールド 説明 タイプ 必須
channel チャンネルを指定します。 オブジェクト
channel.number 指定されたチャンネルを識別する番号です(5や12.1など)。 文字列
ただし、channel.numberchannelMetadata.namechannel.callSign
affiliateCallSignまたはuriを指定する必要があります。
channel.callSign チャンネルをコールサイン(JOAK-DTVなど)で指定します。 文字列
ただし、channel.numberchannelMetadata.namechannel.callSign
affiliateCallSignまたはuriを指定する必要があります。
channel.affiliateCallSign チャンネルを現地の系列コールサイン(JOBH-DTVなど)で指定します。 文字列
ただし、channel.numberchannelMetadata.namechannel.callSign
channel.affiliateCallSignまたはchannel.uriを指定する必要があります。
channel.uri チャンネルのURI(「entity://provider/channel/12307」など)です。 文字列
ただし、channel.numberchannelMetadata.namechannel.callSign
channel.affiliateCallSignまたはchannel.uriを指定する必要があります。
channelMetadata 指定されたチャンネルの追加情報を指定します。 オブジェクト
channelMetadata.name 指定されたチャンネルを識別する別の値です(「FOX」など)。 文字列
ただし、channel.numberchannelMetadata.namechannel.callSign
channel.affiliateCallSignまたはchannel.uriを指定する必要があります。
channelMetadata.image チャンネルを表すイメージのURLです。 文字列

SkipChannels

連続していないチャンネルを段階的に調整するリクエストです。数字を大きくする場合は正の数字を、小さくする場合は負の数字を使用します。

ユーザー: アレクサ、デバイスで次のチャンネルに行って
ユーザー: Alexa, next channel on device

ユーザー: アレクサ、デバイスのチャンネルを上げる
ユーザー: Alexa, channel up on device

ユーザー: アレクサ、デバイスのチャンネルを下げる
ユーザー: Alexa, channel down on device

リクエストの例:

{
  "directive": {
    "header": {
      "namespace": "Alexa.ChannelController",
      "name": "SkipChannels",
      "messageId": "abc-123-def-456",
      "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
      "payloadVersion": "3"
    },
    "payload": {
      "channelCount" : 5
    }
  }
}

ペイロードの詳細

フィールド 説明 タイプ 必須
channelCount チャンネルの増分を示す整数値です。負の数字の場合は数値を減少させ、正の数字の場合は増加させて段階的に変更します。 -10000から10000までの整数

イベントとプロパティ

この機能では、以下のように応答する必要があります。

  • 同期的に応答します。つまり、Lambda関数からAlexaに応答を送信します。

応答を送信する場合、メッセージのcontextにインターフェースのプロパティの状態を含める必要があります。

プロパティ

プロパティ名 プロパティタイプ 説明
channel チャンネル 数字、コールサインまたは系列コールサインでチャンネルを指定します。

応答

チャンネルを変更またはスキップするリクエストが成功した場合、Responseイベントを送信する必要があります。応答には、リクエストが完了した後のチャンネルをレポートするコンテキストオブジェクトを含める必要があります。

応答の例

{
  "context": {
    "properties": [
      {
        "namespace": "Alexa.ChannelController",
        "name": "channel",
        "value": {
          "number": "1234",
          "callSign": "callsign1",
          "affiliateCallSign": "callsign2"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      }
    ]
  },
  "event": {
    "header": {
      "messageId": "abc-123-def-456",
      "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
      "namespace": "Alexa",
      "name": "Response",
      "payloadVersion": "3"
    },
    "endpoint":{
      "endpointId":"appliance-001"
    },
    "payload":{ }
 }
}

ErrorResponse

何らかの理由によりユーザーのリクエストを完了できない場合、エラー応答を返す必要があります。詳細については、Alexa.ErrorResponseを参照してください。

その他のサンプルコード

リクエストと応答のサンプルについては、AlexaスマートホームのGitHubリポジトリで以下を参照してください。

ChannelController