Alexa.InputControllerインターフェース
Alexa.InputController
インターフェースには、エンターテイメントデバイスの入力を変更するためのメッセージが含まれます。
InputController
インターフェースでサポートされているロケールについては、機能インターフェースの一覧を参照してください。
発話
Alexa.InputController
インターフェースを使用する場合、音声対話モデルは既にビルドされています。以下に、ユーザーの発話の例を示します。
Alexa, change the input to DVD.
ユーザーがこのような発話をしたら、Alexaがそれに対応するディレクティブをスキルに送信します。
検出
InputController
をサポートするエンドポイントに検出メッセージを送信する際に、サポートされている入力の配列を指定します。
配列の各入力には次のフィールドがあります。
プロパティ | 説明 | タイプ | 必須 |
---|---|---|---|
name |
入力の名前です。名前は、このエンドポイントの入力全体で一意である必要があります。有効な値は次のとおりです: AUX 1 、AUX 2 、AUX 3 、AUX 4 、AUX 5 、AUX 6 、AUX 7 、BLURAY 、CABLE 、CD 、COAX 1 、COAX 2 、COMPOSITE 1 、DVD 、GAME 、HD RADIO 、HDMI 1 、HDMI 2 、HDMI 3 、HDMI 4 、HDMI 5 、HDMI 6 、HDMI 7 、HDMI 8 、HDMI 9 、HDMI 10 、HDMI ARC 、INPUT 1 、INPUT 2 、 INPUT 3 、INPUT 4 、INPUT 5 、INPUT 6 、INPUT 7 、INPUT 8 、INPUT 9 、INPUT 10 、IPOD 、 LINE 1 、LINE 2 、LINE 3 、LINE 4 、LINE 5 、LINE 6 、LINE 7 、MEDIA PLAYER 、OPTICAL 1 、 OPTICAL 2 、PHONO 、PLAYSTATION 、PLAYSTATION 3 、PLAYSTATION 4 、SATELLITE 、SMARTCAST 、TUNER 、TV 、USB DAC 、VIDEO 1 、VIDEO 2 、VIDEO 3 、XBOX 関連トピック: Input. |
文字列 | ◯ |
例: 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": "HDMI 1"
},
{
"name": "HDMI 2"
}
]
}
]
}
]
}
}
}
ディレクティブ
SelectInput
入力または入力デバイスを変更するリクエストです。
ユーザー: アレクサ、入力を入力名に変えて
リクエストの例:
{
"directive": {
"header": {
"namespace": "Alexa.InputController",
"name": "SelectInput",
"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": {
"input": "HDMI 1"
}
}
}
ペイロードの詳細
プロパティ | 説明 | タイプ | 必須 |
---|---|---|---|
input |
ユーザーがリクエストした入力デバイスの識別子です。 | 文字列 | ◯ |
イベントとプロパティ
この機能では、以下のように応答する必要があります。
- 同期的に応答します。つまり、Lambda関数からAlexaに応答を送信します。
応答
を送信する場合、メッセージのcontext
にインターフェースのプロパティの状態を含める必要があります。
プロパティ
入力の状態が変更されると、inputプロパティを含む状態レポートが送信されます。
プロパティ名 | プロパティタイプ | 説明 |
---|---|---|
input |
入力 | 新しい入力デバイスを識別する文字列です。たとえば、HDMI 1 などです。 |
応答
正常に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": "abc-123-def-456",
"correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
"namespace": "Alexa",
"name": "Response",
"payloadVersion": "3"
},
"endpoint": {
"endpointId": "appliance-001"
},
"payload": {}
}
}
ErrorResponse
何らかの理由によりユーザーのリクエストを完了できない場合、エラー応答を返す必要があります。詳細については、Alexa.ErrorResponseを参照してください。
その他のサンプルコード
リクエストと応答のサンプルについては、AlexaスマートホームのGitHubリポジトリで以下を参照してください。