AlexaリマインダーAPIリファレンス
AlexaリマインダーAPIを使用して、スキルからリマインダーを作成および管理します。このリファレンスでは、AlexaリマインダーAPIで使用できるオペレーションについて説明します。
リマインダーの動作について詳しくは、Alexaリマインダーの概要およびAlexaリマインダー使用のガイドラインを参照してください。
- AlexaリマインダーAPIのエンドポイントと認可
- AlexaリマインダーAPIのセッション内およびセッション外の動作
- リマインダーの作成
- リマインダーの取得
- すべてのリマインダーの取得
- リマインダーの更新
- リマインダーの削除
- リマインダーオブジェクト
- トリガー時間の計算方法
- エラーメッセージ
- リマインダーイベントのサブスクリプション
AlexaリマインダーAPIのエンドポイントと認可
APIのエンドポイントは、受信リクエストのcontext
オブジェクトのapiEndpoint
値から取得します。
-
北米:https://api.amazonalexa.com
-
ヨーロッパ:https://api.eu.amazonalexa.com
-
極東:https://api.fe.amazonalexa.com
各APIリクエストには、Authorization
ヘッダーが必要です。この値には、Login with Amazonから取得したアクセストークンを使用します。
一部の操作で使用されるid
は、リマインダーIDを指します。このid
は、リマインダーが作成されると自動的に生成されます。
AlexaリマインダーAPIのセッション内およびセッション外の動作
リマインダーの作成(POST)にはセッション内のアクセストークンを使用します。セッション外のトークンは使用しないでください。
GET、UPDATE、およびDELETEオペレーションは、セッション内およびセッション外の両方のアクセストークンで動作します。セッション外アクセストークンの使用の詳細については、セッション外の対話を参照してください。
trigger.recurrence.byDay
とtrigger.recurrence.freq
は廃止されました。より具体的な繰り返しパラメーターのstartDateTime
、endDateTime
、recurrenceRules[]
を使用するためです。この変更には下位互換性があります。ペイロードに新しいパラメーターがある場合、古い繰り返しルールのfreq
、byDay
、scheduledTime
は無視されます。リマインダーの作成
スキルはこのAPIを呼び出して、現在のスキルの新しいリマインダーを作成します。
リクエスト
POST /v1/alerts/reminders
リクエストのヘッダー
Content-length: <<バイト長>>
Authorization: Bearer <<アクセストークン>>
Content-Type: application/json
リクエストの本文(SCHEDULED_ABSOLUTE)
timezoneId
フィールドに現在の値を設定してください。設定しないと、誤った時刻にリマインダーが鳴動する可能性があります。タイムゾーンについて詳しくは、タイムゾーンの動作を参照してください。1つのリマインダー
{
{
"requestTime" : "2019-09-22T19:04:00.672",
"trigger": {
"type" : "SCHEDULED_ABSOLUTE",
"scheduledTime" : "2019-09-22T19:00:00.000",
"timeZoneId" : "America/Los_Angeles"
},
"alertInfo": {
"spokenInfo": {
"content": [{
"locale": "en-US",
"text": "犬の散歩",
"ssml": "<speak>犬の散歩</speak>"
}]
}
},
"pushNotification" : {
"status" : "ENABLED"
}
}
}
繰り返しリマインダー
{
"requestTime" : "2019-09-22T19:04:00.672",
"trigger": {
"type" : "SCHEDULED_ABSOLUTE",
"timeZoneId" : "America/Los_Angeles",
"recurrence" : {
"startDateTime": "2019-05-10T6:00:00.000",
"endDateTime" : "2019-08-10T10:00:00.000",
"recurrenceRules" : [
"FREQ=DAILY;BYDAY=SU;BYHOUR=17;BYMINUTE=15;BYSECOND=0;INTERVAL=1;",
"FREQ=MONTHLY;BYMONTHDAY=5;BYHOUR=10;INTERVAL=1;"
]
}
},
"alertInfo": {
"spokenInfo": {
"content": [{
"locale": "en-US",
"text": "犬の散歩",
"ssml": "<speak>犬の散歩</speak>"
}]
}
},
"pushNotification" : {
"status" : "ENABLED"
}
}
リクエストの本文(SCHEDULED_RELATIVE)
SCHEDULED_RELATIVE
リマインダーは繰り返しルールをサポートしていません。{
"requestTime" : "2019-09-22T19:04:00.672",
"trigger": {
"type" : "SCHEDULED_RELATIVE",
"offsetInSeconds" : "7200"
},
"alertInfo": {
"spokenInfo": {
"content": [{
"locale": "en-US",
"text": "犬の散歩",
"ssml": "<speak>犬の散歩</speak>"
}]
}
},
"pushNotification" : {
"status" : "ENABLED"
}
}
フィールド | 説明 | パラメーター 型 |
---|---|---|
requestTime |
有効なISO 8601形式です。イベントが実際に発生した時刻を記述します。 | 文字列 |
trigger |
リマインダーのトリガーに関する情報を含みます。 | オブジェクト |
trigger.type |
トリガーのタイプを示します。SCHEDULED_ABSOLUTE またはSCHEDULED_RELATIVE です。 |
enum |
trigger.offsetInSeconds |
trigger.type がSCHEDULED_RELATIVE に設定された場合は、このフィールドを使用して、リマインダーが鳴らされるまでの時間を指定します(秒)。 |
整数 |
trigger.timeZoneId |
タイムゾーンのIDを含む文字列です。タイムゾーンの動作を参照してください。 | enum |
trigger.recurrence |
トリガーの繰り返し情報に関する情報を含みます。 | オブジェクト |
trigger.recurrence.startDateTime |
任意です。繰り返しパターンの開始時間です。日付と時刻の両方で定義します。デフォルトは"now"です。 | 列挙 |
trigger.recurrence.endDateTime |
任意です。繰り返しパターンの終了時間です。日付と時刻の両方で定義します。デフォルトは、"no end time"です。 | 列挙 |
trigger.recurrence.recurrenceRules |
繰り返しアラートのパターンです。RRULE formatで指定します。 サポートされる値: FREQ 、BYMONTHDAY 、BYDAY 、BYHOUR 、BYMINUTE 、BYSECOND 、INTERVAL サポートされている FREQ のRRULEパターンは、FREQ=DAILY 、FREQ=WEEKLY 、FREQ=MONTHLY 、FREQ=YEARLY です。 • 2つの recurrence 値の最小間隔は、en-US ロケールでは1時間、その他すべてのサポートされるロケールでは4時間です。• DAILY 、WEEKLY 、MONTHLY パターンの最大間隔は、31日です。• YEARLY パターンの最大間隔は1年です。これらの制約を満たさない場合は、エラーコード400がスローされます。 |
文字列 |
alertInfo |
アラートに関する情報を含みます。 | オブジェクト |
alertInfo.spokenInfo |
アラートに含まれる発話コンテンツに関する情報を含みます。 | オブジェクト |
alertInfo.spokenInfo.content |
アラートのコンテンツを含みます。 | オブジェクト |
alertInfo.spokenInfo.content.locale |
値の指定に使用されるロケールです。 | enum |
alertInfo.spokenInfo.content.text |
表示および音声コンテンツに使用されるデフォルトのテキストです。SSML値を指定する場合、このフィールドはテキスト出力のみを処理します。 | 文字列 |
alertInfo.spokenInfo.content.ssml |
音声合成マークアップ言語(SSML)を使用して生成された、音声コンテンツに使用されるテキストです。このフィールドに値を指定しない場合、alertInfo.spokenInfo.content.text はテキストと音声、両方のコンテンツを処理します。リマインダーは、SSMLのspeakタグのみをサポートします。 |
文字列 |
pushNotification |
プッシュ通知に関する情報を含みます。ENABLED の場合、リマインダーが鳴動すると、スマートフォンはプッシュ通知を受け取ります。Alexaアプリから、受信側のデバイスの通知を有効にしていることを確認してください。 |
オブジェクト |
pushNotification.status |
次のいずれかになります。 ENABLED 、DISABLED |
enum |
応答
HTTP/1.1 201 Created
応答の本文
{
"alertToken": "string",
"createdTime": "2019-08-14T15:40:55.002Z",
"updatedTime": "2019-08-14T15:40:55.002Z",
"status": "ON",
"version": "string",
"href": "string"
}
フィールド | 説明 | パラメーターの型 |
---|---|---|
alertToken |
このリマインダーアラートの一意のID | 文字列 |
createdTime |
有効なISO 8601形式 - このリマインダーアラートの作成時刻です。 | 文字列 |
updatedTime |
有効なISO 8601形式 - このリマインダーアラートの最終更新時刻です。 | 文字列 |
status |
ON またはCOMPLETED . |
列挙 |
version |
このリマインダーアラートのバージョンです。 | 文字列 |
href |
作成されたアラートを取得するURIです。 | 文字列 |
リマインダーの取得
ID(alertToken
)を指定してリマインダーを取得します。
リクエスト
GET /v1/alerts/reminders/{id}
応答
応答には、alerts
オブジェクト内にリマインダーオブジェクトを含みます。
HTTP/1.1 200 OK
{
"totalCount": "string",
"alerts": [
{
"alertToken": "string",
"createdTime": "2019-08-14T15:47:48.386Z",
"updatedTime": "2019-08-14T15:47:48.386Z",
"status": "ON",
"trigger": {
"type": "SCHEDULED_ABSOLUTE",
"scheduledTime": "2019-08-14T15:47:48.387Z",
"offsetInSeconds": 0,
"timeZoneId": "string",
"recurrence" : {
"startDateTime": "2019-05-10T6:00:00.000",
"endDateTime" : "2019-08-10T10:00:00.000",
"recurrenceRules" : [
"FREQ=DAILY;BYDAY=SU;BYHOUR=17;BYMINUTE=15;BYSECOND=0;INTERVAL=1;",
"FREQ=MONTHLY;BYMONTHDAY=5;BYHOUR=10;INTERVAL=1;"
]
}
},
"alertInfo": {
"spokenInfo": {
"content": [
{
"locale": "string",
"text": "string",
"ssml": "<speak>犬の散歩</speak>"
}
]
}
},
"pushNotification": {
"status": "ENABLED"
},
"version": "string"
}
],
"links": "string"
}
すべてのリマインダーの取得
スキルは、このAPIを呼び出してスキルのすべてのリマインダーを取得します。このリクエストは、完了したリマインダー(ステータスがCOMPLETED
)も取得します。
リクエスト
GET /v1/alerts/reminders
応答
応答には、alerts
オブジェクト内に1つ以上のリマインダーオブジェクトを含みます。
HTTP/1.1 200 OK
{
"totalCount": "string",
"alerts": [
{
"alertToken": "string",
"createdTime": "2019-08-14T16:03:38.811Z",
"updatedTime": "2019-08-14T16:03:38.811Z",
"status": "ON",
"trigger": {
"type": "SCHEDULED_ABSOLUTE",
"scheduledTime": "2019-08-14T16:03:38.811Z",
"offsetInSeconds": 0,
"timeZoneId": "string",
"recurrence" : {
"startDateTime": "2019-05-10T6:00:00.000",
"endDateTime" : "2019-08-10T10:00:00.000",
"recurrenceRules" : [
"FREQ=DAILY;BYDAY=SU;BYHOUR=17;BYMINUTE=15;BYSECOND=0;INTERVAL=1;",
"FREQ=MONTHLY;BYMONTHDAY=5;BYHOUR=10;INTERVAL=1;"
]
}
},
"alertInfo": {
"spokenInfo": {
"content": [
{
"locale": "string",
"text": "string",
"ssml": "<speak>犬の散歩</speak>"
}
]
}
},
"pushNotification": {
"status": "ENABLED"
},
"version": "string"
}
],
"links": "string"
}
リマインダーの更新
スキルはこのAPIを呼び出して、現在のスキルのリマインダーを更新します。
リクエスト
PUT /v1/alerts/reminders/{id}
リクエストの本文
timezoneId
フィールドに現在の値を設定してください。設定しないと、誤った時刻にリマインダーが鳴動する可能性があります。タイムゾーンについて詳しくは、タイムゾーンの動作を参照してください。{
"createdTime": "2019-08-14T15:53:12.919Z",
"trigger": {
"type": "SCHEDULED_ABSOLUTE",
"scheduledTime": "2019-08-14T15:53:12.919Z",
"offsetInSeconds": 0,
"timeZoneId": "string",
"recurrence" : {
"startDateTime": "2019-05-10T6:00:00.000",
"endDateTime" : "2019-08-10T10:00:00.000",
"recurrenceRules" : [
"FREQ=DAILY;BYDAY=SU;BYHOUR=17;BYMINUTE=15;BYSECOND=0;INTERVAL=1;",
"FREQ=MONTHLY;BYMONTHDAY=5;BYHOUR=10;INTERVAL=1;"
]
}
},
"alertInfo": {
"spokenInfo": {
"content": [
{
"locale": "string",
"text": "string",
"ssml": "<speak>犬の散歩</speak>"
}
]
}
},
"pushNotification": {
"status": "ENABLED"
}
}
応答
HTTP/1.1 200 OK
応答の本文
{
"alertToken": "string",
"createdTime": "2019-08-14T15:40:55.002Z",
"updatedTime": "2019-08-14T15:40:55.002Z",
"status": "ON",
"version": "string",
"href": "string"
}
フィールド | 説明 | パラメーターの型 |
---|---|---|
alertToken |
このリマインダーアラートの一意のID | 文字列 |
createdTime |
有効なISO 8601形式 - このリマインダーアラートの作成時刻です。 | 文字列 |
updatedTime |
有効なISO 8601形式 - このリマインダーアラートの最終更新時刻です。 | 文字列 |
status |
ON またはCOMPLETED . |
列挙 |
version |
このリマインダーアラートのバージョンです。 | 文字列 |
href |
作成されたアラートを取得するURIです。 | 文字列 |
廃止されたルール
trigger.recurrence.byDay
とtrigger.recurrence.freq
は廃止されました。より具体的な繰り返しパラメーターのstartDateTime
、endDateTime
、recurrenceRules[]
を使用するためです。この変更には下位互換性があります。ペイロードに新しいパラメーターがある場合、古い繰り返しルールのfreq
、byDay
、scheduledTime
は無視されます。リマインダーの作成
スキルはこのAPIを呼び出して、現在のスキルの新しいリマインダーを作成します。
リクエスト
POST /v1/alerts/reminders
リクエストのヘッダー
Content-length: <<バイト長>>
Authorization: Bearer <<アクセストークン>>
Content-Type: application/json
リクエストの本文(SCHEDULED_ABSOLUTE)
timezoneId
フィールドに現在の値を設定してください。設定しないと、誤った時刻にリマインダーが鳴動する可能性があります。タイムゾーンについて詳しくは、タイムゾーンの動作を参照してください。{
"requestTime" : "2019-09-22T19:04:00.672",
"trigger": {
"type" : "SCHEDULED_ABSOLUTE",
"scheduledTime" : "2019-09-22T19:00:00.000",
"timeZoneId" : "America/Los_Angeles",
"recurrence" : {
"freq" : "WEEKLY", //廃止されました
"byDay": ["MO"] //廃止されました
}
},
"alertInfo": {
"spokenInfo": {
"content": [{
"locale": "en-US",
"text": "犬の散歩"
}]
}
},
"pushNotification" : {
"status" : "ENABLED"
}
}
リクエストの本文(SCHEDULED_RELATIVE)
SCHEDULED_RELATIVE
リマインダーは繰り返しルールをサポートしていません。{
"requestTime" : "2019-09-22T19:04:00.672",
"trigger": {
"type" : "SCHEDULED_RELATIVE",
"offsetInSeconds" : "7200"
},
"alertInfo": {
"spokenInfo": {
"content": [{
"locale": "en-US",
"text": "犬の散歩"
}]
}
},
"pushNotification" : {
"status" : "ENABLED"
}
}
フィールド | 説明 | パラメーター 型 |
---|---|---|
requestTime |
有効なISO 8601形式です。イベントが実際に発生した時刻を記述します。 | 文字列 |
trigger |
リマインダーのトリガーに関する情報を含みます。 | オブジェクト |
trigger.type |
トリガーのタイプを示します。SCHEDULED_ABSOLUTE またはSCHEDULED_RELATIVE です。 |
enum |
trigger.offsetInSeconds |
trigger.type がSCHEDULED_RELATIVE に設定された場合は、このフィールドを使用して、リマインダーが鳴らされるまでの時間を指定します(秒)。 |
整数 |
trigger.timeZoneId |
タイムゾーンのIDを含む文字列です。タイムゾーンの動作を参照してください。 | enum |
trigger.recurrence |
トリガーの繰り返し情報に関する情報を含みます。 | オブジェクト |
trigger.recurrence.freq |
廃止されました。 次のいずれかになります。 WEEKLY 、DAILY 。反復の頻度のタイプです。 |
enum |
trigger.recurrence.byDay |
廃止されました。 曜日または曜日のリストを指定します。曜日名の最初の2文字を使用します。たとえば、1週間は[ "SU", "MO", "TU", "WE", "TH", "FR", "SA" ]と表します。毎週、複数の曜日にリマインダーをトリガーするには、各曜日に個別にリマインダーを作成する必要があります。 | 列挙 |
alertInfo |
アラートに関する情報を含みます。 | オブジェクト |
alertInfo.spokenInfo |
アラートに含まれる発話コンテンツに関する情報を含みます。 | オブジェクト |
alertInfo.spokenInfo.content |
アラートのコンテンツを含みます。 | オブジェクト |
alertInfo.spokenInfo.content.locale |
値の指定に使用されるロケールです。 | enum |
alertInfo.spokenInfo.content.text |
表示および読み上げ用に使用されるテキストです。 | 文字列 |
pushNotification |
プッシュ通知に関する情報を含みます。 | オブジェクト |
pushNotification.status |
次のいずれかになります。 ENABLED 、DISABLED |
enum |
応答
HTTP/1.1 200 OK
応答の本文
{
"alertToken": "string",
"createdTime": "2019-08-14T15:40:55.002Z",
"updatedTime": "2019-08-14T15:40:55.002Z",
"status": "ON",
"version": "string",
"href": "string"
}
フィールド | 説明 | パラメーターの型 |
---|---|---|
alertToken |
このリマインダーアラートの一意のID | 文字列 |
createdTime |
有効なISO 8601形式 - このリマインダーアラートの作成時刻です。 | 文字列 |
updatedTime |
有効なISO 8601形式 - このリマインダーアラートの最終更新時刻です。 | 文字列 |
status |
ON またはCOMPLETED . |
列挙 |
version |
このリマインダーアラートのバージョンです。 | 文字列 |
href |
作成されたアラートを取得するURIです。 | 文字列 |
指定したリマインダーを取得する
スキルは、現在のスキルの特定のリマインダーを取得するためにこのAPIを呼び出します。
リクエスト
GET /v1/alerts/reminders/{id}
応答
応答には、alerts
オブジェクト内にリマインダーオブジェクトを含みます。
HTTP/1.1 200 OK
{
"totalCount": "string",
"alerts": [
{
"alertToken": "string",
"createdTime": "2019-08-14T15:47:48.386Z",
"updatedTime": "2019-08-14T15:47:48.386Z",
"status": "ON",
"trigger": {
"type": "SCHEDULED_ABSOLUTE",
"scheduledTime": "2019-08-14T15:47:48.387Z",
"offsetInSeconds": 0,
"timeZoneId": "string",
"recurrence": {
"freq": "WEEKLY", //廃止されました
"byDay": [ //廃止されました
"SU"
],
"interval": 0
}
},
"alertInfo": {
"spokenInfo": {
"content": [
{
"locale": "string",
"text": "string"
}
]
}
},
"pushNotification": {
"status": "ENABLED"
},
"version": "string"
}
],
"links": "string"
}
すべてのリマインダーの取得
スキルは、このAPIを呼び出してスキルのすべてのリマインダーを取得します。このリクエストは、完了したリマインダー(ステータスがCOMPLETED
)も取得します。
リクエスト
GET /v1/alerts/reminders
応答
応答には、alerts
オブジェクト内に1つ以上のリマインダーオブジェクトを含みます。
HTTP/1.1 200 OK
{
"totalCount": "string",
"alerts": [
{
"alertToken": "string",
"createdTime": "2019-08-14T16:03:38.811Z",
"updatedTime": "2019-08-14T16:03:38.811Z",
"status": "ON",
"trigger": {
"type": "SCHEDULED_ABSOLUTE",
"scheduledTime": "2019-08-14T16:03:38.811Z",
"offsetInSeconds": 0,
"timeZoneId": "string",
"recurrence": {
"freq": "WEEKLY", //廃止されました
"byDay": [ //廃止されました
"SU"
],
"interval": 0
}
},
"alertInfo": {
"spokenInfo": {
"content": [
{
"locale": "string",
"text": "string"
}
]
}
},
"pushNotification": {
"status": "ENABLED"
},
"version": "string"
}
],
"links": "string"
}
リマインダーの更新
スキルは、現在のスキルのリマインダーを更新するためにこのAPIを呼び出します。
リクエスト
PUT /v1/alerts/reminders/{id}
リクエストの本文
timezoneId
フィールドを使用して実際にリマインダーが通知される日時を考慮します。{
"createdTime": "2019-08-14T15:53:12.919Z",
"trigger": {
"type": "SCHEDULED_ABSOLUTE",
"scheduledTime": "2019-08-14T15:53:12.919Z",
"offsetInSeconds": 0,
"timeZoneId": "string",
"recurrence": {
"freq": "WEEKLY", //廃止されました
"byDay": [ //廃止されました
"SU"
],
"interval": 0
}
},
"alertInfo": {
"spokenInfo": {
"content": [
{
"locale": "string",
"text": "string"
}
]
}
},
"pushNotification": {
"status": "ENABLED"
}
}
応答
HTTP/1.1 200 OK
応答の本文
{
"alertToken": "string",
"createdTime": "2019-08-14T15:40:55.002Z",
"updatedTime": "2019-08-14T15:40:55.002Z",
"status": "ON",
"version": "string",
"href": "string"
}
フィールド | 説明 | パラメーターの型 |
---|---|---|
alertToken |
このリマインダーアラートの一意のID | 文字列 |
createdTime |
有効なISO 8601形式 - このリマインダーアラートの作成時刻です。 | 文字列 |
updatedTime |
有効なISO 8601形式 - このリマインダーアラートの最終更新時刻です。 | 文字列 |
status |
ON またはCOMPLETED . |
列挙 |
version |
このリマインダーアラートのバージョンです。 | 文字列 |
href |
作成されたアラートを取得するURIです。 | 文字列 |
リマインダーの削除
スキルは、現在のスキルの特定のリマインダーを削除するためにこのAPIを呼び出します。このオペレーションはアクティブなアラートのみを削除します。完了したものは削除しません。
完了したリマインダーはAlexaアプリに3日間表示され、その後は自動的に削除されます。
リクエスト
DELETE /v1/alerts/reminders/{id}
Response
HTTP/1.1 200 OK
リマインダーオブジェクト
フィールド | 説明 | パラメーター 型 |
---|---|---|
requestTime |
有効なISO 8601形式で表されたこのリマインダーアラートの作成時刻です。 | 文字列 |
trigger |
必須です。リマインダーのトリガー情報です。 | オブジェクト |
trigger.type |
次のいずれかになります。 SCHEDULED_ABSOLUTE 、SCHEDULED_RELATIVE 。リマインダーは、特定の時刻、またはrequestTime を起点にoffsetInSeconds で計算された相対時刻に設定できます。 |
enum |
trigger.scheduledTime |
有効なISO 8601形式で表されたトリガー予定時刻です。trigger.type がSCHEDULED ABSOLUTE の場合に使用します。 |
文字列 |
trigger.offsetInSeconds |
trigger.type がSCHEDULED_RELATIVE の場合に、このフィールドを使用して、リマインダーが鳴らされるまでの時間を指定します(秒)。 |
整数 |
trigger.timeZoneId |
リマインダーの想定タイムゾーンです。こちらのタイムゾーンのリストを参照してください。 | 文字列 |
alertInfo |
VUI/GUI体裁のリマインダーのアラート情報です。 | オブジェクト |
alertInfo.spokenInfo |
必須です。リマインダーのVUI体裁です。読み上げ情報と表示情報は同じです。 | オブジェクト |
alertInfo.spokenInfo.content |
読み上げ情報と表示情報の内容。1つ以上のロケールにalertInfo.spokenInfo.content.text が必要です。 |
文字列 |
alertInfo.spokenInfo.content.locale |
読み上げテキストが出力されるロケールです。 | Alexaでサポートされるロケールのいずれかです(例:en-US )。 |
alertInfo.spokenInfo.content.text |
プレーンテキスト形式の読み上げテキストです。 | 文字列 |
pushNotification |
Alexaモバイルアプリへのリマインダーのプッシュ通知を有効または無効にします。 | オブジェクト |
pushNotification.status |
次のいずれかになります。 ENABLED 、DISABLED 。デフォルトはENABLED です。 |
enum |
トリガー時間の計算方法
スキルは、絶対時刻または相対時刻でリマインダーを設定できます。
SCHEDULED_ABSOLUTE
またはSCHEDULED_RELATIVE
のtrigger.type
を使用して、これらの値を設定します。
絶対計算
例: スキルがあらかじめ計算された固定時刻にリマインダーを設定したい場合 – たとえば、6月1日の午後7時に誰かに薬を飲むようリマインドしたいとします。
このリマインダーを設定するには、SCHEDULED_ABSOLUTE
リマインダーと必須のscheduledTime
フィールドに固定値を指定します。
"type" : "SCHEDULED_ABSOLUTE"
"scheduledTime" : "2019-06-01T19:00:00"
相対計算
例: スキルが相対時刻(経過時間に基づいて算出した時刻)にリマインダーを設定したい場合 – たとえば、1時間後に誰かに薬を飲むようリマインドしたいとします。
このリマインダーを設定するには、SCHEDULED_RELATIVE
リマインダーを使用します。鳴動時刻は、スキルが設定したrequestedTime
とoffsetInSeconds
を比較することにより算出します。
"type" : "SCHEDULED_RELATIVE"
"offsetInSeconds" : 3600
リマインダー時刻におけるタイムゾーンの動作
ケース1:デバイスのタイムゾーンでリマインダーを設定する
デバイスと同じタイムゾーンでリマインダーを設定する場合、timezoneId
フィールドを設定する必要はありません。
以下の例では、デバイスの正しいタイムゾーンで午後7時にリマインダーを設定しています。
"scheduledTime" : "2019-06-01T19:00:00"
ケース2: アプリのタイムゾーンでリマインダーを設定する
指定したいリマインダーの日付、時刻、タイムゾーンを指定する場合、リマインダーを鳴動させたい適切なタイムゾーンをtimezoneId
フィールドに設定する必要があります。
以下の例では、予約のリマインダーをニューヨーク時間の6月1日午後7時に設定しています。
"scheduledTime" : "2019-06-01T19:00:00"
"timezoneId" : "America/New_York"
America/New_York
タイムゾーンの2019-06-01T19:00:00
は、PDT時間の午後4時として読み上げおよび表示されます。 エラーメッセージ
HTTPステータスコード | 列挙 | メッセージ |
---|---|---|
400 | INVALID_REQUEST_TIME_FORMAT | リクエストの日時形式が正しくありません。 |
INVALID_TRIGGER | タイプとフィールドが一致しません。SCHEDULED_ABSOLUTEにoffsetInSecondsが設定されているか、SCHEDULED_RELATIVEにscheduledTimeが設定されています。 | |
TRIGGER_SCHEDULED_TIME_IN_PAST | 予定時刻が過去です。 | |
INVALID_TRIGGER_SCHEDULED_TIME_FORMAT | 日付形式がサポートされていません。 | |
INVALID_TRIGGER_TIME_ZONE | タイムゾーンが有効ではありません。 | |
INVALID_TRIGGER_RECURRENCE | 繰り返しパターンが無効です。 | |
UNSUPPORTED_TRIGGER_RECURRENCE | 繰り返しパターンが有効ですが現在はサポートされていません。 | |
UNSUPPORTED_TRIGGER_RECURRENCE_INTERVAL | 繰り返しパターンは有効ですが、2つの鳴動時間の最小間隔がサポートされていません。 | |
INVALID_ALERT_INFO | アラート情報にロケールがないか、無効なロケール形式です。 テキスト文字列が長すぎます。 |
|
INVALID_TRIGGER_OFFSET | 無効な相対時刻のオフセットです。 | |
UNSUPPORTED_SCHEDULED_TIME_FORMAT | トリガー予定時刻の形式がサポートされていません。 サポートされている形式は、YYYY-MM-DDTHH:mm:ss.SSS、YYYY-MM-DDTHH:mm:ss、YYYY-MM-DDTHH:mmです。 |
|
401 | UNAUTHORIZED | トークンは有効ですが適切な権限がありません。 |
MISSING_BEARER_TOKEN | アクセストークンがありません。 | |
INVALID_BEARER_TOKEN | 無効または誤ったアクセストークンです。 | |
EXPIRED_BEARER_TOKEN | アクセストークンが失効しています。 | |
NOT_IN_SESSION | リマインダーはセッション内でのみ作成できます。 | |
403 | MAX_REMINDERS_EXCEEDED | デバイスのリマインダーの上限(500など)に達しました。 |
DEVICE_NOT_SUPPORTED | このデバイスではリマインダーはサポートされていません。 | |
404 | ALERT_NOT_FOUND | アラートが存在しません。 |
409 | MISSING_TIME_ZONE | デバイスにはタイムゾーンが設定されていません。 |
429 | MAX_RATE_EXCEEDED | リクエストはスキルごとに速度25 TPSに調整されます。 |
500 | INTERNAL_SERVER_ERROR | |
503 | SERVICE_UNAVAILABLE | |
504 | DEVICE_NOT_REACHABLE | デバイスにアクセスできません。またはデバイスがオフラインです。 |
リマインダーイベントのサブスクリプション
リマインダーイベントをサブスクリプションすると、AlexaリマインダーAPIを呼び出さずにスキルにこれらのイベントを通知できます。スキルでは、アカウントリンクを使用して外部アプリを組み込み、これらのイベントの通知を使用して、アプリ内のリマインダーの削除や変更など、アプリの変更を行うことができます。
イベントの通知は順不同で届くので、リマインダーイベントの結果としてスキルが実行するアクションでは、イベントのタイムスタンプに注意する必要があります。たとえば、リマインダーが2回更新され、先に更新されたイベントが次に更新されたイベントの後に届いた場合、先に更新されたものは破棄される必要があります。
Alexaは、スキルサービスが応答で確認を送信しなかった場合、イベントの再配信を試行します。スキルサービスは過去のイベントをAlexaから取得することはできず、配信されたイベントを利用する必要があります。
リマインダーイベントのサブスクリプションの詳細については、Alexaスキルのスキルイベントを参照してください。
イベントで使用されるapiEndpoint値
このエンドポイントは、https://api.amazonalexa.com
です。
JSON形式のリマインダーイベント
スキルはリマインダーイベントに登録できます。これを設定するには、skill.json
マニフェストファイルを設定します。この設定の詳細については、スキルサービスでのイベントの使用を参照してください。
設定可能なリマインダーイベントは次のとおりです。
ReminderStarted
リマインダーが鳴動を始めると、AlexaはReminderStarted
を生成します。その後、スキルサービスはトリガー時刻に対応するアクションを実行できます。
{
"version": "1.0",
"context": {
"System": {
"application": {
"applicationId": "<skill_id>"
},
"user": {
"userId": "amzn1.ask.account.VEBA...",
"accessToken": "<access_token>",
"permissions": {
"consentToken": "Atza|IgEB..."
}
},
"apiEndpoint": "https://api.amazonalexa.com"
}
},
"request": {
"type": "Reminders.ReminderStarted",
"requestId": "913e4588-62f9-4d5b",
"timestamp": "2017-09-15T01:46:14Z",
"body": {
"alertToken": "<alert-token-value>",
}
},
"session": {
"attributes": {}
}
}
ReminderCreated
リマインダーの作成後、AlexaはReminderCreated
イベントを生成します。Alexaは、このイベントを、スキルを使用したユーザーにではなく、リマインダーを作成したスキルに送信します。
{
"version": "1.0",
"context": {
"System": {
"application": {
"applicationId": "<skill_id>"
},
"user": {
"userId": "amzn1.ask.account.VEBA...",
"accessToken": "<access_token>",
"permissions": {
"consentToken": "Atza|IgEB..."
}
},
"apiEndpoint": "https://api.amazonalexa.com"
}
},
"request": {
"type": "Reminders.ReminderCreated",
"requestId": "<requestId-value>",
"timestamp": "2017-09-15T01:46:14Z",
"body": {
"alertToken": "<alert-token-value>"
}
},
"session": {
"attributes": {}
}
}
ReminderDeleted
ユーザーがリマインダーを削除した後、AlexaはReminderDeleted
イベントを生成します。Alexaは、リマインダーを作成したスキルにイベントを送信します。
{
"version": "1.0",
"context": {
"System": {
"application": {
"applicationId": "<skill_id>"
},
"user": {
"userId": "amzn1.ask.account.VEBA...",
"accessToken": "<access_token>",
"permissions": {
"consentToken": "Atza|IgEB..."
}
},
"apiEndpoint": "https://api.amazonalexa.com"
}
},
"request": {
"type": "Reminders.ReminderDeleted",
"requestId": "<requestId-value",
"timestamp": "2017-09-15T01:46:14Z",
"body": {
"alertTokens": "[alert-token-values]"
}
},
"session": {
"attributes": {}
}
}
ReminderUpdated
リマインダーが更新されると、AlexaはReminderUpdated
イベントを生成します。このイベントは、リマインダーの現在の状態以外には、更新に関する詳細を提供しません。更新の詳細を取得するには、スキルですべてのリマインダーの取得APIを使用する必要があります。
考えられる更新には、以下のいずれかがあります。
- 完了した
- オンにされた
または、リマインダーに次の変更があった場合です。
- トリガー時刻が更新された
- ラベルが更新された
{
"version": "1.0",
"context": {
"System": {
"application": {
"applicationId": "<skill_id>"
},
"user": {
"userId": "amzn1.ask.account.VEBA...",
"accessToken": "<access_token>",
"permissions": {
"consentToken": "Atza|IgEB..."
}
},
"apiEndpoint": "https://api.amazonalexa.com"
}
},
"request": {
"type": "Reminders.ReminderUpdated",
"requestId": "913e4588-62f9-4d5b",
"timestamp": "2017-09-15T01:46:14Z",
"body": {
"status": "DEFERRED",
"alertToken": "09d9d7df-05be-438c-veba"
}
},
"session": {
"attributes": {}
}
}
ReminderStatusChanged
リマインダーのステータスが変更されると、AlexaはReminderStatusChanged
イベントを生成します。
考えられるステータスには、以下のいずれかがあります。
- オン
- 完了した
- 延期
{
"version": "1.0",
"context": {
"System": {
"application": {
"applicationId": "<skill_id>"
},
"user": {
"userId": "amzn1.ask.account.VEBA...",
"accessToken": "<access_token>",
"permissions": {
"consentToken": "Atza|IgEB..."
}
},
"apiEndpoint": "https://api.amazonalexa.com"
}
},
"request": {
"type": "Reminders.ReminderStatusChanged",
"requestId": "913e4588-62f9-4d5b",
"timestamp": "2017-09-15T01:46:14Z",
"body": {
"status": "COMPLETED",
"alertToken": "09d9d7df-05be-438c-veba"
}
},
"session": {
"attributes": {}
}
}
最終更新日: 2023 年 12 月 18 日