Alexa.KeypadControllerインターフェース


Alexa.KeypadControllerインターフェース

ユーザーが画面上の要素を選択またはスクロールするリクエストを行うと、keystroke値(UPDOWNなど)を含んだSendKeystrokeディレクティブをAlexa.KeypadControllerインターフェースがLambdaに送信します。

SendKeystrokeディレクティブの発話

ユーザーは、以下に関する発話を行うことができます。

  • D-Padで指定された方向への移動
  • フォーカスされている要素の選択
  • リスト、メニュー項目、タイトル、説明といった要素のスクロール
  • 現在画面外にある情報の表示

ユーザーが以下の発話を行うと、AlexaはLambdaにSendKeystrokeディレクティブを送信します。

機能 サンプル発話 想定されるレスポンス
キーパッドコントローラー

Get next page

Alexa, scroll right

Alexa, page down

Alexa, go right

Alexa, move down

Alexa, select this

Alexa, choose this

Alexa, show details

Alexa, show info

Alexa, see more information

[translation coming soon]

[translation coming soon]

[translation coming soon]

[translation coming soon]

[translation coming soon]

上、下、左、右のコマンドでは、1単位分または次の画面要素まで上下左右に移動します。

ページ上、ページ下、ページ左、ページ右のコマンドでは、指定された方向にスクロールします。

選択コマンドでは、フォーカスされている要素またはアイテムを選択します。

詳細情報コマンドでは、現在フォーカスされている画面要素の詳しい情報を表示します。たとえば、画面外のコンテンツを表示したり、詳細ページにジャンプしたりします。

SendKeystrokeディレクティブの例

KeypadControllerインターフェースからLambdaに送信されるKeyStrokeディレクティブの例を以下に示します。

{
  "directive": {
    "header": {
      "namespace": "Alexa.KeypadController",
      "name": "SendKeystroke",
      "messageId": "<メッセージID>",
      "correlationToken": "<opaque相関トークン>",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "<OAuth2ベアラートークン>"
      },
      "endpointId": "<エンドポイントID>",
      "cookie": {}
    },
    "payload": {
      "keystroke": "SELECT"
    }
  }
}

ペイロードの説明

SendKeystrokeディレクティブでは、payloadkeystrokeプロパティを使用して、実行するアクションを指定します。

フィールド 説明
keystroke ユーザーが要求したキーストロークです。 文字列

keystrokeに指定できる値は、 UPDOWNLEFTRIGHTSELECTPAGE_UPPAGE_DOWNPAGE_LEFTPAGE_RIGHTINFOMOREです。以下の表を参照してください。

キーストロークの種類 キーストローク値 説明
方向パッド(D-Pad) UPDOWNLEFTRIGHTSELECT 1単位分または次の画面要素まで上下左右に移動するか、フォーカスされている要素またはアイテムを選択します。
スクロール PAGE_UPPAGE_DOWNPAGE_LEFTPAGE_RIGHT 指定された方向にスクロールします。
情報 INFOMORE 現在フォーカスされている画面要素の詳しい情報を表示します。たとえば、画面外のコンテンツを表示したり、詳細ページにジャンプしたりします。

レスポンスの例

SendKeystrokeディレクティブの処理を正常に終了した場合は、Alexa.Responseイベントで応答します。応答は、同期または非同期のどちらでも実行可能です。非同期で応答する場合は、相関トークン、および認可トークンを含むスコープを追加してください。

SendKeystrokeレスポンスイベントの例

{
  "event": {
    "header": {
      "namespace": "Alexa",
      "name": "Response",
      "messageId": "<メッセージID>",
      "correlationToken": "<opaque相関トークン>",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "<OAuth2ベアラートークン>"
      },
      "endpointId": "<エンドポイントID>"
    },
    "payload": {}
  }
}

インターフェース機能に対するサポートの宣言

ビデオスキルがAlexa.KeypadControllerインターフェースをサポートしていることを示すには、Alexa.Discoveryインターフェースを介して送信されたDiscoverディレクティブへのレスポンスで、そのサポートを明示する必要があります(KeypadControllerインターフェースの機能の宣言を参照)。必ず、keys属性を追加し、サポートしているキーストロークのリストを指定してください。また、KeypadControllerを使用するには Alexa Client Libraryバージョン1.4.5以降が必要です。詳細については、Discoveryインターフェースを参照してください。

エラーレスポンス

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