Alexa.Presentation.APLTインターフェースリファレンス



Alexa.Presentation.APLTインターフェースリファレンス

Alexa.Presentation.APLTインターフェースには、キャラクターディスプレイ機能(Echo Dot with clockに搭載されている7セグメントLEDの英数字クロックディスプレイなど)を持つデバイスにコンテンツを表示するためのディレクティブが用意されています。

supportedInterfacesのAlexa.Presentation.APLT

ユーザーのデバイスにAPL対応のキャラクターディスプレイ機能がある場合は、context.System.device.supportedInterfacesオブジェクトに[Alexa.Presentation.APLT]が含まれています。

{
  "version": "1.0",
  "session": {},
  "context": {
    "System": {
      "device": {
        "deviceId": "amzn1.ask.device.1",
        "supportedInterfaces": {
          "AudioPlayer": {},
          "Alexa.Presentation.APLT": {
            "runtime": {
              "maxVersion": "1.0"
            }
          }
        }
      },
      "apiEndpoint": "https://api-amazonalexa.amazon.com",
      "apiAccessToken": ""
    },
    "Viewports": [
      {
        "id": "main",
        "type": "APLT",
        "supportedProfiles": [
          "FOUR_CHARACTER_CLOCK"
        ],
        "lineLength": 4,
        "lineCount": 1,
        "format": "SEVEN_SEGMENT",
        "interSegments": [
          {
            "x": 2,
            "y": 0,
            "characters": "':."
          }
        ]
      }
    ]
  },
  "request": {
    "type": "LaunchRequest",
    "requestId": "amzn1.echo-api.request.1",
    "timestamp": "2019-06-27T15:52:19Z",
    "locale": "ja-JP",
    "shouldLinkResultBeReturned": false
  }
}

Alexa.Presentation.APLTディレクティブを返す前に、必ずsupportedInterfacesを確認してください。

RenderDocumentディレクティブ

指定されたdocumentに含まれているAPLコンテンツを表示するようデバイスに命令します。オプションで、1つまたは複数のdatasourcesを指定してコンテンツをドキュメントにバインドすることもできます。

{
  "type": "Alexa.Presentation.APLT.RenderDocument",
  "token": "developer-provided-string",
  "targetProfile": "FOUR_CHARACTER_CLOCK",
  "document": {
    "version": "1.0",
    "type": "APLT",
    "mainTemplate": {
      "item": {
        "type": "Text",
        "id": "myTextId",
        "textAlign": "right",
        "text": "Hello",
        "overflow": "marquee"
      }
    }
  },
  "datasources": {}
}
名前 説明 必須

datasources

ドキュメントにデータを指定するためのデータソースオブジェクトのマップです。データをテンプレートと分けるために使用します。データバインディングの評価データバインディングの構文を参照してください。

オブジェクト

document

表示するAPLドキュメントです。

オブジェクト

targetProfile

ターゲットとなるデバイスプロファイルです。ユーザーのデバイスでサポートされているデバイスプロファイルを、リクエストのcontext.Viewports[].supportedProfilesプロパティの指示に従って設定します。現状では常にFOUR_CHARACTER_CLOCKに設定されているため、そのままで構いません。

列挙

token

プレゼンテーションの一意のIDです。各ドキュメントは独立したプレゼンテーションと見なされます。これは今後のイベントやディレクティブを適切なプレゼンテーションと関連付けるために使用されます。

文字列

type

常にAlexa.Presentation.APLT.RenderDocumentです。

文字列

ExecuteCommandsディレクティブ

指定されたcommandsを実行するようデバイスに命令します。

{
  "type": "Alexa.Presentation.APLT.ExecuteCommands",
  "token": "developer-provided-string",
  "commands": [
    {
      "type": "SetValue",
      "description": "「myTextId」コンポーネントのテキストプロパティ値を変更します。",
      "componentId": "myTextId",
      "property": "text",
      "value": "New text value!",
      "delay": 3000
    }
  ]
}
名前 説明 必須

commands

実行するコマンドオブジェクト配列です。複数のコマンドを指定すると、Sequentialコマンドを使用した場合と同じになります。

コマンドの配列

token

現在のプレゼンテーションの一意のIDです。現在表示中のドキュメントのレンダリングに使用されているRenderDocumentディレクティブのトークンと一致する必要があります。このトークンは、スキルが指定します。

文字列

type

常にAlexa.Presentation.APLT.ExecuteCommandsです。

文字列

スキルリクエストのViewportオブジェクト

スキルに送信されるリクエストには必ず、ユーザーのデバイスでサポートされているviewportに関する情報が含まれています。この情報をコードで使用して、適切な応答を作成できます。

キャラクターディスプレイ付きデバイスの場合、viewport情報はcontext.Viewports配列にあります。この配列には、デバイスでサポートされているviewportを示す1つまたは複数のviewportオブジェクトが格納されています。typeプロパティは、オブジェクトが画面付きデバイス用APL(APL)とキャラクターディスプレイ付きデバイス用APL(APLT)のどちらをサポートするデバイスを表しているかを示します。

キャラクターディスプレイ付きデバイスのViewports配列の例を次に示します。

{
  "version": "1.0",
  "session": {},
  "context": {
    "system": {
      "device": {
        "deviceId": "String",
        "supportedInterfaces": {
          "AudioPlayer": {},
          "Alexa.Presentation.APLT": {
            "runtime": {
              "maxVersion": "1.0"
            }
          }
        }
      }
    },
    "Viewports": [
      {
        "id": "main",
        "type": "APLT",
        "supportedProfiles": ["FOUR_CHARACTER_CLOCK"],
        "lineLength": 4,
        "lineCount": 1,
        "format": "SEVEN_SEGMENT",
        "interSegments": [
          {
            "x": 2,
            "y": 0,
            "characters": "':."
          }
        ]
      }
    ]
  },
  "request": {}
}

viewportオブジェクトのプロパティは次のとおりです。

名前 説明

format

ディスプレイの文字の形状です。現状ではSEVEN_SEGMENTがサポートされています。

列挙

id

viewportの一意のIDです。

文字列

interSegments

ディスプレイでサポートされているセグメント間の文字の配列です。たとえば、4文字クロックのコロン(:)などの文字の配置を指定します。セグメント間の文字を参照してください。

interSegmentオブジェクトの配列

lineCount

ディスプレイの高さ(文字単位)です。Echo Dot with clockのような4x1デバイスの場合、値は1です。

整数

lineLength

ディスプレイの幅(文字単位)です。Echo Dot with clockのような4x1デバイスの場合、lineLengthの値は4です。

整数

supportedProfiles

デバイスでサポートされているディスプレイタイプのリストです。現状ではFOUR_CHARACTER_CLOCKを指定できます。

列挙の配列

type

キャラクターディスプレイ付きデバイスの場合はAPLT、画面付きデバイスの場合はAPLです。

列挙