Alexa.InputControllerインターフェース



Alexa.InputControllerインターフェース

InputControllerインターフェースには、エンターテイメントデバイスの入力を変更するためのメッセージが含まれます。

検出

InputControllerをサポートするエンドポイントを探す際に、サポートされている入力の配列を指定します。

配列の各入力には次のフィールドがあります。

プロパティ 説明 必須
name 入力の名前です。このエンドポイントの入力全体で一意である必要があります。 文字列
friendlyNames このエンドポイントを識別する名前の配列です。エンドユーザーが指定できます。各エントリーはこのエンドポイントの入力全体で一意である必要があります。 文字列の配列

例: InputControllerが含まれるDiscover.Response

{
  "event": {
    "header": {
      "namespace": "Alexa.Discovery",
      "name": "Discover.Response",
      "payloadVersion": "3",
      "messageId": "ff746d98-ab02-4c9e-9d0d-b44711658414"
    },
    "payload": {
      "endpoints": [{
        "capabilities": [{
          "type": "AlexaInterface",
          "interface": "Alexa.InputController",
          "version": "3",
          "inputs": [{
              "name": "HDMI1",
              "friendlyNames": ["ケーブルボックス", "ケーブル"]
            },
            {
              "name": "HDMI2",
              "friendlyNames": ["ゲームシステム"]
            }
          ]
        }]
      }]
    }
  }
}

ディレクティブ

このインターフェースの制御とクエリーのディレクティブは、以下の言語のスキルで使用できます。

  • 英語 - すべてのロケール
  • イタリア語
  • スペイン語(スペイン)
  • 日本語

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

SelectInput

入力または入力デバイスを変更するリクエストです。

ユーザー: アレクサ、入力を入力名に変えて

リクエストの例:

{
  "directive": {
    "header": {
      "namespace": "Alexa.InputController",
      "name": "SelectInput",
      "messageId": "c8d53423-b49b-48ee-9181-f50acedf2870",
      "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token":"access-token-from-skill"
      },
      "endpointId": "device-001",
      "cookie": {     }
    },
    "payload": {
      "input": "HDMI1"
    }
  }
}


ペイロードの詳細

プロパティ 説明 必須
input ユーザーがリクエストした入力デバイスの識別子です 文字列

イベントとプロパティ

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

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

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

プロパティ

入力の状態が変更されると、inputプロパティを含む状態レポートが送信されます。

プロパティ名 プロパティタイプ 説明
input 入力 新しい入力デバイスを識別する文字列("HDMI1"など)です。

応答

正常にSelectInputディレクティブが処理されたら、Responseを送信します。

応答の例

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

{
  "context": {
    "properties": [
      {
        "namespace": "Alexa.InputController",
        "name": "input",
        "value": "HDMI 1",
        "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リポジトリで以下を参照してください。

InputController