Alexa.ChannelControllerインターフェース



Alexa.ChannelController

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

ディレクティブ

このインターフェースの制御とクエリーのディレクティブがサポートする言語は、スキルの種類によって異なります。

スキルの種類 サポートする言語
ビデオスキル 英語(英国)、英語(米国)、ドイツ語
スマートホームスキル 英語(すべてのロケール)、イタリア語、スペイン語(スペイン)、日本語

スマートホームスキルでサポートされる言語の詳細については、スマートホームスキルを複数の言語で開発するを参照してください。

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": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4",
      "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": "c8d53423-b49b-48ee-9181-f50acedf2870",
      "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
      "payloadVersion": "3"
    },
    "payload": {
      "channelCount" : 5
    }
  }
}

ペイロードの詳細

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

イベントとプロパティ

このインターフェースでは、以下のように応答する必要があります。

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

応答を送信する場合、メッセージの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": "30d2cd1a-ce4f-4542-aa5e-04bd0a6492d5",
      "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
      "namespace": "Alexa",
      "name": "Response",
      "payloadVersion": "3"
    },
    "endpoint":{
      "endpointId":"appliance-001"
    },
    "payload":{ }
 }
}

ErrorResponse

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

その他のサンプルコード

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

ChannelController