Alexa設定APIを使用したユーザー設定情報の取得
Alexaユーザーは、Alexaアプリ内で自分が使用するタイムゾーン、長さの単位、温度の単位を設定できます。開発者は、Alexa設定APIを使用して、統合された画面上でユーザー設定を取得できます。
認可にはJWTトークンを使用します。これらのAPIはすべてdeviceId
を参照します。これは、これらの設定を取得するユーザーデバイスの一意の識別子です。
deviceId
値とapiAccessToken
値を使用してAlexa設定APIにクエリを実行する場合は、タイムゾーン値しか取得できません。長さの単位や温度の単位を取得しようとすると、「Error 204 No Content」エラーメッセージが返されます。Alexaシミュレーターの制限事項を参照してください。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
ヘッダーに含める)。次の形式を使用します。 BearerACCESS_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 | サービスを利用できません。 |