Alexa設定APIを使用したユーザー設定情報の取得



Alexa設定APIを使用したユーザー設定情報の取得

Alexaユーザーは、Alexaアプリ内で自分が使用するタイムゾーン、長さの単位、温度の単位を設定できます。開発者は、Alexa設定APIを使用して、統合された画面上でユーザー設定を取得できます。

認可にはJWTトークンを使用します。これらのAPIはすべてdeviceIdを参照します。これは、これらの設定を取得するユーザーデバイスの一意の識別子です。

Alexa設定APIのエンドポイントと認可

APIのエンドポイントはリージョンによって異なります:

  • 北米:https://api.amazonalexa.com

  • ヨーロッパ:https://api.eu.amazonalexa.com

  • 極東:https://api.fe.amazonalexa.com

すべてのAPIリクエストにはAuthorizationヘッダーが必要であり、その値はLogin with Amazonから取得したJWTアクセストークンでなければなりません。

APIアクセストークンとデバイスIDの取得

スキルに送信される各リクエストには、スキルに与える権限をカプセル化するAPIアクセストークン(apiAccessToken)が含まれています。このトークンとデバイスID(deviceId)の両方を取得して、ユーザーの設定のリクエストに含める必要があります。

apiAccessTokenとデバイスID deviceIdの値はSystemオブジェクトに含まれ、Systemオブジェクトはcontextオブジェクトに含まれます。リクエストの本文全体を見るには、リクエストの形式を参照してください。

{
  "context": {
    "System": {
      "apiAccessToken": "AxThk...",
      "apiEndpoint": "https://api.amazonalexa.com",
      "device": {
        "deviceId": "string-identifying-the-device",
        "supportedInterfaces": {}
      },
      "application": {
        "applicationId": "string"
      },
      "user": {}
    }
  }
}

したがって、次のようになります。

deviceId = this.event.context.System.device.deviceId

コードがユーザーの設定をリクエストする場合には、次を含めてください。

  • deviceID(リクエストパスに含める)

  • アクセストークン(Authorizationヘッダーに含める)。次の形式を使用します。 Bearer ACCESS_TOKEN。ここでACCESS_TOKENは、AlexaリクエストメッセージのapiAccessTokenフィールドの値です。以下に例を示します。

Authorization: Bearer AxThk...6fnLok

したがって、accessToken = this.event.context.System.apiAccessTokenとなります。

関連トピック: Alexaから送信されたリクエストを処理する

タイムゾーンの取得

デバイスのタイムゾーンを取得します。

リクエスト

GET	/v2/devices/{deviceId}/settings/System.timeZone

応答

特定のタイムゾーンの例は次のようになります。 "Africa/Abidjan"

タイムゾーンの完全リストを参照してください。

長さの単位の取得

デバイスの長さの単位を取得します。複数形に注意してください。

リクエスト

/v2/devices/{deviceId}/settings/System.distanceUnits

応答

以下のいずれかになります。 「METRIC」または「IMPERIAL」。

温度の単位の取得

デバイスの温度の単位を取得します。単数形に注意してください。

リクエスト

/v2/devices/{deviceId}/settings/System.temperatureUnit

応答

以下のいずれかになります。 「CELSIUS」または「FAHRENHEIT」。

応答コード

コードメッセージ
200設定が正常に取得されました。
204設定値が存在しません。
400不正なリクエストです。
401トークンの形式が正しくありません。
403認証トークンが無効か、有効期限が切れています。
404見つかりません。deviceIdが無効の場合など、指定されたURIがリソースを見つけられない場合が該当します。
406受け付けることができません。ヘッダーが受け付けることができる形式ではありません。
429リクエストが制限されています。この応答は、速度制限を超過した場合に発生します。
503サービスを利用できません。