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


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

Alexa.DataStoreインターフェースは、デバイス上のデータストアの更新時に発生する可能性のあるエラーについてスキルに通知するリクエストを提供します。データストアとは、Alexa Presentation Language(APL)ドキュメントがデータバインディングを使用してアクセスできるデータを格納する、デバイスにローカルにインストールされる領域です。ウィジェットはデータストアを使用してコンテンツを表示します。スキルにリクエストを送信して応答を待つ必要はありません。

ウィジェットの詳細については、ウィジェットとAlexa Presentation Language(APL)の概要を参照してください。

Alexa.DataStoreインターフェースを有効にする

Alexa.DataStoreインターフェースを使用するには、スキルでこのインターフェースを有効にする必要があります。開発者コンソールまたはASK CLIを使用して、このインターフェースに対応するようにスキルを更新できます。

開発者コンソールでインターフェースを設定する

  1. 開発者コンソールにサインインして、設定するスキルの名前をクリックします。
  2. ビルド>インターフェースページに移動します。
  3. データストアオプションを有効にします。

    これにより、Alexa Extensionsデータストアが自動的に有効になります。

  4. インターフェースを保存モデルをビルドの順にクリックして、対話モデルを再ビルドします。

ASK CLIでインターフェースを設定する

以下の例のように、ALEXA_DATA_STOREmanifest.apis.custom.interfaces配列のスキルマニフェストに追加します。

{
  "manifest": {
    "apis": {
      "custom": {
        "endpoint": {},
        "interfaces": [
          {
            "type": "ALEXA_DATA_STORE"
          }
        ],
        "regions": {}
      }
    },
    "manifestVersion": "1.0",
    "privacyAndCompliance": {},
    "publishingInformation": {}
  }
}

リクエスト

DataStoreErrorリクエスト

エラーによりデータストアの更新が失敗したときに、そのことをスキルに通知するために送信されます。リクエストには、更新を再試行するために使用できる詳細情報が含まれています。

たとえば、データストアREST APIを使用して、オフラインで接続できないデバイスに更新情報を送信できます。このシナリオでは、デバイスがオンラインに戻ったときに、Alexaが更新を再試行します。REST操作の一部として指定した配信の有効期限が切れても、デバイスがオフラインである場合に、スキルがDataStoreErrorリクエストを受け取り、開発者がエラーを処理したりペイロードの送信を再試行したりできます。

DataStoreErrorのプロパティを以下の表に示します。

プロパティ 必須 説明

type

文字列

Alexa.DataStore.DataStoreErrorに設定します。

error

Errorオブジェクト

発生したエラーに関する詳細情報を含むエラーオブジェクトです。

error.type

列挙値

エラーのタイプです。
指定できる値:

  • STORAGE_LIMIT_EXCEEDED
  • DATASTORE_INTERNAL_ERROR
  • DEVICE_UNAVAILABLE
  • DEVICE_PERMANENTLY_UNAVAILABLE

DEVICE_UNAVAILABLEエラーとDEVICE_PERMANENTLY_UNAVAILABLEエラー

プロパティ 必須 説明

type

列挙値

エラーのサブタイプです。
指定できる値:

  • DEVICE_UNAVAILABLE - attemptDeliveryUntil後もデバイスがオフラインのままである場合に送信されます。
  • DEVICE_PERMANENTLY_UNAVAILABLE - デバイス登録が変更されました。このため、スキルはこのデバイスへのデータのプッシュを停止する必要があります。停止しない場合、INVALID_TARGETが報告されます。

content

オブジェクト

エラーの内容を含むオブジェクトです。

content.deviceId

文字列

接続できないデバイスのデバイスIDです。

content.commands

コマンドの配列

接続できないデバイスに送信されたコマンドを、元のリクエスト時間順にまとめたものです。

以下は、DEVICE_UNAVAILABLEエラーの例です。

{
  "type": "Alexa.DataStore.Error",
  "error": {
    "type": "DEVICE_UNAVAILABLE",
    "content": {
      "deviceId": "device-id",
      "commands": [
        {
          "type": "PUT_OBJECT",
          "namespace": "namespace-for-the-command",
          "key": "key-from-the-command",
          "content": {}
        }
      ]
    }
  }
}

ストレージ制限内部エラーとデータストア内部エラー

プロパティ 必須 説明

type

列挙値

エラーのサブタイプです。
指定できる値:

  • STORAGE_LIMIT_EXCEEDED
  • DATASTORE_INTERNAL_ERROR

content

オブジェクト

エラーの内容を含むオブジェクトです。

content.deviceId

文字列

エラーが発生したデバイスのアカウントIDです。

content.failedCommand

コマンド

エラーが原因で失敗したコマンドです。

content.message

文字列

×

エラーを説明するメッセージです。

以下は、STORAGE_LIMIT_EXCEEDEDエラーの例です。

{
  "type": "Alexa.DataStore.Error",
  "error": {
    "type": "STORAGE_LIMIT_EXCEEDED",
    "content": {
      "deviceId": "device-id",
      "failedCommand": {
        "type": "PUT_OBJECT",
        "namespace": "namespace-from-the-command",
        "key": "key-from-the-command",
        "content": {}
      }
    }
  }
}


このページは役に立ちましたか?

最終更新日: 2025 年 12 月 02 日