AlexaタイマーAPIリファレンス
AlexaタイマーAPIを使うと、タイマーを作成したり管理したりする機能をスキルに追加できます。このリファレンスでは、AlexaタイマーAPIで使用できるオペレーションについて説明します。
タイマーの動作の詳細についてはAlexaタイマーの概要、Alexaタイマーのベストプラクティスを参照してください。
- AlexaタイマーAPIのエンドポイントと認可
- AlexaタイマーAPIのセッション内およびセッション外の動作
- タイマーを作成する
- 指定したタイマーを読み込む
- 指定したcustomerIdのタイマーをすべて読み込む
- 指定したタイマーをキャンセルする
- すべてのタイマーをキャンセルする
- 指定したタイマーを一時停止する
- 指定したタイマーを再開する
- タイマー時刻におけるタイムゾーンの動作
- エラーメッセージの一覧
- タイマーイベントのサブスクリプション
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オペレーションは、セッション内およびセッション外の両方のアクセストークンで動作します。セッション外アクセストークンの使用の詳細については、セッション外の対話を参照してください。
タイマーを作成する
スキルはこのAPIを呼び出して、スキルの新しいタイマーを作成します。スキルでは、簡単な通知をしたり、お知らせを提供したり、タスクを起動したりするためにタイマーをトリガーできます。
- トリガー時刻は、リクエストを受信した時点の時刻に基づいて計算されます。
- ラベルの異なるタイマーやラベルのないタイマーには、同じ時間を指定できます。
- タイマーのラベルを使用する場合は、一意である必要があります。一意でない場合、
400
エラーが返されます。
operation.type
のタイマー種類によって異なります。リクエスト
POST /v1/alerts/timers
リクエストのヘッダー
Authorization: Bearer <<apiAccessToken>>
Content-Type: application/json
リクエスト本文の例
{
"duration": "PT10M",
"timerLabel": "エクササイズ",
"creationBehavior": {
"displayExperience": {
"visibility": "VISIBLE" | "HIDDEN"
}
},
"triggeringBehavior": {
"operation": {
"type": "NOTIFY_ONLY" | "ANNOUNCE" | "LAUNCH_TASK",
...<タイマーの種類ごとに異なるコンテンツが入ります>...
},
"notificationConfig": {
"playAudible": true
}
}
}
パラメーター
フィールド | 型 | 説明 |
---|---|---|
duration |
ISO-8601形式の継続時間 | 必須です。タイマーの継続時間です。2時間以内で指定する必要があります。たとえば、duration が90分に設定された場合、タイマー作成時刻の90分後にタイマーが鳴動します。 |
timerLabel |
文字列 | 任意です。タイマーの名前を256文字以内で指定します。 |
creationBehavior |
オブジェクト | タイマー作成動作を定義するオブジェクトです。 |
creationBehavior.displayExperience |
オブジェクト | 画面付きのAlexa搭載デバイスに作成したタイマーを表示するかどうかを定義するオブジェクトです。 |
creationBehavior.displayExperience.visibility |
文字列 | 次のいずれかになります( VISIBLE かHIDDEN )。デフォルトはHIDDEN です。VISIBLE に設定すると、(ユーザーが画面付きのAlexa搭載デバイスを持っている場合は)ネイティブのタイマーGUIがタイマー作成から8秒間表示されます。
|
triggeringBehavior |
オブジェクト | タイマーのトリガー動作を定義するオブジェクトです。 |
triggeringBehavior.operation |
オブジェクト | タイマーのオペレーションを指定するオブジェクトです。 |
triggeringBehavior.operation.type | 文字列 | 次のいずれかになります: NOTIFY_ONLY | ANNOUNCE | LAUNCH_TASK |
triggeringBehavior.notificationConfig |
オブジェクト | 通知のコンフィギュレーションを定義するオブジェクトです。 |
triggeringBehavior.notificationConfig.playAudible |
ブール値 | タイマーが聞き取り可能かどうかを指定します。ANNOUNCE およびLAUNCH_TASK にはtrue またはfalse を指定できます。NOTIFY_ONLY の場合はtrue のみ指定することができます。 |
タイマーを作成する:NOTIFY_ONLYオペレーション
NOTIFY_ONLY
タイマーはトーンを鳴らすだけです。Alexaは話したり、アナウンスを読み上げたり、新しいタスクを起動したりすることはありません。このタイマーではplayAudible
値にtrue
のみ指定できます。
playAudible
がtrue
の場合、次の動作が発生します。
- タイマーの指定時間が経過します。
- タイマーを停止するには、ユーザーが「アレクサ、ストップ」と発話する必要があります。ユーザーがタイマーを停止しない場合、鳴動時間いっぱいまで鳴り続けます。
NOTIFY_ONLYタイマーの例
"operation": {
"type" : "NOTIFY_ONLY"
}
NOTIFY_ONLYタイマーのリクエスト本文例
{
"duration": "PT10M",
"timerLabel": "エクササイズ",
"creationBehavior": {
"displayExperience": {
"visibility": "HIDDEN"
}
},
"triggeringBehavior": {
"operation": {
"type": "NOTIFY_ONLY"
},
"notificationConfig": {
"playAudible": true
}
}
}
タイマーを作成する:ANNOUNCEオペレーション
ANNOUNCE
タイマーには、タイマーがトリガーされた後にAlexaが言うテキストが含まれます。ユーザーが「ストップ」と言うとタイマーの鳴動を停止します。このタイマーは、ユーザーに次のステップを指示するようなスキルに組み込むことができます。
playAudible
が true
の場合、次の動作が発生します。
- タイマーが鳴ります。
- ユーザーが「ストップ」と言います。
- ユーザーが「ストップ」と言った後、アナウンスが読み上げられます。
playAudible
が false
の場合、次の動作が発生します。
- タイマーの指定時間が経過し、アナウンスがすぐに開始されます。
ANNOUNCEタイマーの例
"operation": {
"type" : "ANNOUNCE",
"textToAnnounce": [{
"locale": "ja-JP",
"text": "ではストレッチを止めてランニングを始めましょう"
}]
}
ANNOUNCEタイマーのリクエスト本文例
{
"duration": "PT10M",
"timerLabel": "エクササイズ",
"creationBehavior": {
"displayExperience": {
"visibility": "HIDDEN"
}
},
"triggeringBehavior": {
"operation": {
"type": "ANNOUNCE",
"textToAnnounce": [
{
"locale": "ja-JP",
"text": "ではストレッチを止めてランニングを始めましょう"
}
]
},
"notificationConfig": {
"playAudible": true
}
}
}
フィールド | 型 | 説明 |
---|---|---|
operation.textToAnnounce |
オブジェクト | タイマーのテキストとロケール情報を含むオブジェクトです。 |
operation.textToAnnounce.text |
文字列 | タイマーがトリガーされたときにAlexaが言うテキストです。SSMLはサポートされていません。 注: Alexaは、アナウンスの先頭に次のテキストを追加します。「<スキル名>から」 |
operation.textToAnnounce.locale |
文字列 | Alexaがサポートする任意のロケールです。1ロケールに限られます。 |
タイマーを作成する:LAUNCH_TASKオペレーション
LAUNCH_TASK
オペレーションはSkill Connectionsと組み合わせて使用することで、独自のタスクと連携できます。
playAudible
が true
の場合、次の動作が発生します。
- タイマーが鳴ります。
- ユーザーが「ストップ」と言った場合。
- 確認ダイアログの中で、ユーザーは同意または拒否します。
- ユーザーが確認ダイアログに同意すると、スキルが起動します。
playAudible
が false
の場合、次の動作が発生します。
- タイマーの指定時間が経過します。
- 確認ダイアログの中で、ユーザーは同意または拒否します。
- ユーザーが確認ダイアログに同意すると、スキルが起動します。
LAUNCH_TASKタイマーの例
"operation": {
"type" : "LAUNCH_TASK",
"textToConfirm": [{
"locale": "ja-JP",
"text": "ではストレッチを止めてください。{continueWithSkillName}を使用してランニングを開始しますか?”} [],
{
}
}],
"task" : {
"name" : "exercise",
"version" : "1",
"input" : {
...
<開発者がカスタマイズする入力内容>
...
}
}
}
LAUNCH_TASKタイマーのリクエスト本文例
{
"duration": "PT30S",
"timerLabel": "印刷",
"creationBehavior": {
"displayExperience": {
"visibility": "HIDDEN"
}
},
"triggeringBehavior": {
"operation": {
"type": "LAUNCH_TASK",
"task": {
"name": "<customTask.NAME>",
"version": "<customTask.VERSION>",
"input": {
"type": "PrintImageRequest",
"version": "1",
"title": "美しい風景の画像",
"url": "http://www.example.com/beautiful-scenic-image.jpg",
"imageType": "JPEG"
}
},
"textToConfirm": [
{
"locale": "ja-JP",
"text": "印刷タイマーが終了しました。 {continueWithSkillName}で続行しますか?”
}
],
"notificationConfig": {
"playAudible": true
}
}
}
}
フィールド | 型 | 説明 |
---|---|---|
operation.textToConfirm |
オブジェクト | 確認テキストとロケールを含むオブジェクトです。SSMLはサポートされていません。 |
operation.textToConfirm.locale |
文字列 | Alexaがサポートする任意のロケールです。1ロケールに限られます。 |
operation.textToConfirm.text |
文字列 | 別のスキルに接続してタスクを完了させるかどうかをユーザーに確認するときにAlexaが読み上げるテキストです。SSMLはサポートされていません。 {continueWithSkillName}は必須です。これは「<スキル名>で続行します」に置き換えられます。 |
リクエストにはtask
オブジェクトも含める必要があります。
フィールド | 型 | 説明 |
---|---|---|
task.name |
文字列 | タスク名です。 |
task.version |
文字列 | タスクのバージョンです。 |
task.input |
オブジェクト | 任意です。タスクの情報を含むオブジェクトです。このオブジェクトにはスキル開発者がカスタマイズしたタスク情報を含めます。 |
応答
HTTP/1.1 200 OK
応答本文の例
{
“id”: “Opaque、一意の文字列”,
"status": "PAUSED",
"duration": "PT10M",
"triggerTime": "2019-09-12T19:10:00.083Z",
"timerLabel": "chicken",
"createdTime": "2019-09-12T19:00:00.083Z",
"updatedTime": "2019-09-12T19:04:35.083Z",
"remainingTimeWhenPaused": "PT5M25S"
}
フィールド | 形式/型 | 説明 |
---|---|---|
id |
文字列 | タイマーの一意のIDです。Opaque文字列の形式です。 |
status |
列挙 |
タイマーのステータスは次のいずれかです。
|
duration |
ISO-8601形式の継続時間 | タイマーの継続時間です。 |
triggerTime |
ISO-8601形式の指定時刻 | タイマーが鳴動する予定時刻です。 |
timerLabel |
文字列 | ユーザーがタイマーを呼ぶときのタイマーラベルです。 |
createdTime |
ISO-8601形式の指定時刻 | タイマーが作成された時刻です。 |
updatedTime |
ISO-8601形式の指定時刻 | タイマーが最後に更新(一時停止、再開、停止)された時刻です。更新されなかった場合はcreatedTime と同じになります。 |
remainingTimeWhenPaused |
ISO-8601形式の継続時間 | タイマーが最後に一時停止された時点での残り時間です。一時停止されたタイマーにのみ適用されます。 |
一般的な検証のエラーコード
HTTPステータスコード | 説明 | 詳細 |
---|---|---|
400 Bad Request | リクエストの形式エラーです。 | 任意の入力検証エラーです。メッセージは詳細エラー説明に含まれます。 |
401 Unauthorized | リクエストは認可されていません。 | トークンが無効か、有効期限が切れています。 |
500 Internal Server Error | タイマーの作成に失敗しました。 | サービス側の問題のいずれかが考えられます。 |
パラメーター検証のエラーコード
HTTPステータスコード | コード | メッセージ |
---|---|---|
400 | INVALID_DURATION |
タイマーの継続時間が2時間を超えています。 |
INVALID_TIMER_LABEL |
タイマーラベルが無効か、タイマーラベルの長さが256文字を超えています。 | |
INVALID_SCHEMA_FORMAT |
次のいずれかになります:
|
|
TEXT_TOO_LONG |
ANNOUNCE のテキスト、確認タスクやカスタムタスクのテキストの最大サイズは2 KBまでです。 |
|
OPERATION_NOT_SUPPORTED |
オペレーションでサポートされる値は、NOTIFY_ONLY 、ANNOUNCE 、LAUNCH_TASK のいずれかのみです。 |
|
401 | UNAUTHORIZED |
トークンは有効ですが適切な権限がありません。 |
403 | MAX_TIMERS_EXCEEDED |
デバイス上のタイマーが最大件数(10件)に達しました。 |
500 | INTERNAL_SERVER_ERROR |
予期しないサーバー側のエラーです。 |
指定したタイマーを読み込む
このAPIを呼び出すと、id
値を指定して特定のタイマーオブジェクトを取得できます。スキルは、そのスキルが作成したタイマーのみ読み込むことができます。
リクエスト
GET /v1/alerts/timers/{id}
リクエストのヘッダー
Authorization: Bearer <<apiAccessToken>>
Content-Type: application/json
リクエスト本文はありません。
フィールド | パラメーターの型 | 説明 |
---|---|---|
id |
文字列 | 必須です。タイマーの一意のIDです。 |
応答
HTTP/1.1 200 OK
ラベルのないタイマーの応答本文例
{
"id": "a3aac326-c504-458b-8520-15fd048f086a",
"status": "ON",
"duration": "PT10M",
"triggerTime": "2019-12-03T10:25:30Z",
"createdTime": "2019-12-03T10:15:30Z",
"updatedTime": "2019-12-03T10:15:30Z"
}
返されたタイマーが一時停止済みだった場合、応答にはremainingTimeWhenPaused
プロパティも含まれます。
"remainingTimeWhenPaused": "PT3M3S"
フィールド | 形式/型 | 説明 |
---|---|---|
id |
UUID | タイマーの一意のIDです。 |
status |
列挙 |
タイマーのステータスは次のいずれかです。
|
duration |
ISO-8601形式の継続時間 | タイマーの継続時間です。 |
triggerTime |
ISO-8601形式の指定時刻 | タイマーが鳴動する予定時刻です。 |
timerLabel |
文字列 | ユーザーがタイマーを呼ぶときのタイマーラベルです。 |
createdTime |
ISO-8601形式の指定時刻 | タイマーが作成された時刻です。 |
updatedTime |
ISO-8601形式の指定時刻 | タイマーが最後に更新(一時停止、再開、停止)された時刻です。更新されなかった場合はcreatedTime と同じになります。 |
remainingTimeWhenPaused |
ISO-8601形式の継続時間 | タイマーが最後に一時停止された時点での残り時間です。 |
エラーコード
HTTPステータスコード | 説明 | 詳細 |
---|---|---|
400 Bad Request | リクエストの形式エラーです。 | 任意の入力検証エラーです。メッセージは詳細エラー説明に含まれます。 |
401 Unauthorized | リクエストは認可されていません。 | トークンが無効か、有効期限が切れています。 |
404 Not Found | オブジェクトが見つかりません。 | 指定されたタイマーは存在しません。 |
500 Internal Server Error | タイマーを読み込めませんでした。 | サービス側の問題のいずれかが考えられます。 |
指定したcustomerIdのタイマーをすべて読み込む
指定したカスタマーIDのタイマーを取得します。すべてのデバイスでこのスキルが作成したタイマーが返されます。返されたタイマーは継続時間が短いものから順に並べられます。タイマーの一覧は1ページに表示されます。現時点ではページ分割はサポートされません。
タイマーがない場合、空のリストが返され、totalCount
には0が入ります。
リクエスト
GET /v1/alerts/timers
リクエストのヘッダー
Authorization: Bearer <<apiAccessToken>>
Content-Type: application/json
リクエスト本文はありません。
応答
HTTP/1.1 200 OK
応答本文の例
この例では、2つのタイマーが返されます。そのうち1件は一時停止中です。
{
"timers": [
{
"id": "a3aac326-c504-458b-8520-15fd048f086a",
"status": "ON",
"duration": "PT10M",
"triggerTime": "2019-12-03T10:25:30Z",
"createdTime": "2019-12-03T10:15:30Z",
"updatedTime": "2019-12-03T10:15:30Z",
},
{
"id": "a3aac326-c504-458b-8520-15fd048f086a",
"status": "PAUSED",
"duration": "PT5M",
"timerLabel": "ピザ",
"createdTime": "2019-12-03T10:15:30Z",
"updatedTime": "2019-12-03T10:12:03Z",
"remainingTimeWhenPaused": "PT3M3S"
}
],
"totalCount": 2,
"nextToken": null
}
フィールド | 形式/型 | 説明 |
---|---|---|
timers |
配列 | timer オブジェクトの配列です。 |
timers.id |
UUID | タイマーの一意のIDです。 |
timers.status |
列挙 |
タイマーのステータスは次のいずれかです。
|
timers.duration |
ISO-8601形式の継続時間 | タイマーの継続時間です。 |
timers.triggerTime |
ISO-8601形式の指定時刻 | タイマーが鳴動する予定時刻です。 |
timers.timerLabel |
文字列 | ユーザーがタイマーを呼ぶときのタイマーラベルです。 |
timers.createdTime |
ISO-8601形式の指定時刻 | タイマーが作成された時刻です。 |
timers.updatedTime |
ISO-8601形式の指定時刻 | タイマーが最後に更新(一時停止、再開、停止)された時刻です。更新されなかった場合はcreatedTime と同じになります。 |
timers.remainingTimeWhenPaused |
ISO-8601形式の継続時間 | タイマーが最後に一時停止された時点での残り時間です。 |
totalCount |
整数 | 返されるtimerオブジェクトの数です。 |
nextToken |
null | サポートされる値は、null のみです。 |
エラーコード
HTTPステータスコード | 説明 | 詳細 |
---|---|---|
400 Bad Request | リクエストの形式エラーです。 | 任意の入力検証エラーです。メッセージは詳細エラー説明に含まれます。 |
401 Unauthorized | リクエストは認可されていません。 | トークンが無効か、有効期限が切れています。 |
500 Internal Server Error | タイマーを読み込めませんでした。 | サービス側で何らかの問題が発生しています。 |
指定したタイマーをキャンセルする
このAPIを呼び出すと、現在のデバイスに設定された特定のタイマーをキャンセルできます。
リクエスト
DELETE /v1/alerts/timers/{id}
リクエストのヘッダー
Authorization: Bearer <<apiAccessToken>>
Content-Type: application/json
リクエスト本文はありません。
フィールド | パラメーターの型 | 説明 |
---|---|---|
id |
文字列 | 必須です。タイマーの一意のIDです。 |
応答
HTTP/1.1 200 OK
応答本文はありません。
エラーコード
HTTPステータスコード | 説明 | 詳細 |
---|---|---|
400 Bad Request | リクエストの形式エラーです。 | 任意の入力検証エラーです。メッセージは詳細エラー説明に含まれます。 |
401 Unauthorized | リクエストは認可されていません。 | トークンが無効か、有効期限が切れています。 |
404 Not Found | オブジェクトが見つかりません。 | 指定されたタイマーは存在しません。 |
500 Internal Server Error | タイマーの削除に失敗しました。 | サービス側で何らかの問題が発生しています。 |
すべてのタイマーをキャンセルする
すべてのタイマーを削除します。このスキルが作成したすべてのタイマーが、どのデバイスからも削除されます。
リクエスト
DELETE /v1/alerts/timers
リクエストのヘッダー
Authorization: Bearer <<apiAccessToken>>
Content-Type: application/json
リクエスト本文はありません。
応答
HTTP/1.1 200 OK
応答本文はありません。
エラーコード
HTTPステータスコード | 説明 | 詳細 |
---|---|---|
400 Bad Request | リクエストの形式エラーです。 | 任意の入力検証エラーです。メッセージは詳細エラー説明に含まれます。 |
401 Unauthorized | リクエストは認可されていません。 | トークンが無効か、有効期限が切れています。 |
500 Internal Server Error | タイマーの削除に失敗しました。 | サービス側で何らかの問題が発生しています。 |
指定したタイマーを一時停止する
このAPIを呼び出すとタイマーを一時停止できます。
セットされていてまだ鳴動していないタイマーを一時停止できます。タイマーは停止し、残り時間が保存されます。たとえば、45分後に鳴動するタイマーを一時停止すると、そのタイマーは再開した時点から45分後に鳴動します。
リクエスト
POST /v1/alerts/timers/{id}/pause
リクエストのヘッダー
Authorization: <<apiAccessToken>>
Content-Type: application/json
リクエスト本文はありません。
フィールド | パラメーターの型 | 説明 |
---|---|---|
id |
文字列 | 必須です。タイマーの一意のIDです。 |
応答
HTTP/1.1 200 OK
応答本文はありません。
エラーコード
HTTPステータスコード | 説明 | 詳細 |
---|---|---|
400 Bad Request | リクエストの形式エラーです。 | 任意の入力検証エラーです。メッセージは詳細エラー説明に含まれます。 |
401 Unauthorized | リクエストは認可されていません。 | トークンが無効か、有効期限が切れています。 |
404 Not Found | オブジェクトが見つかりません。 | 指定されたタイマーは存在しません。 |
500 Internal Server Error | 操作に失敗しました。 | サービス側で何らかの問題が発生しています。 |
指定したタイマーを再開する
このAPIを呼び出すと、一時停止したタイマーを再開できます。タイマーが再開されると、一時停止または停止されない限り、残り時間の経過後に鳴動します。
リクエスト
POST /v1/alerts/timers/{id}/resume
リクエストのヘッダー
Authorization: <<apiAccessToken>>
Content-Type: application/json
リクエスト本文はありません。
フィールド | パラメーターの型 | 説明 |
---|---|---|
id |
文字列 | 必須です。タイマーの一意のIDです。 |
応答
HTTP/1.1 200 OK
応答本文はありません。
エラーコード
HTTPステータスコード | 説明 | 詳細 |
---|---|---|
400 Bad Request | リクエストの形式エラーです。 | 任意の入力検証エラーです。メッセージは詳細エラー説明に含まれます。 |
401 Unauthorized | リクエストは認可されていません。 | トークンが無効か、有効期限が切れています。 |
404 Not Found | オブジェクトが見つかりません。 | 指定されたタイマーは存在しません。 |
500 Internal Server Error | 操作に失敗しました。 | サービス側で何らかの問題が発生しています。 |
タイマー時刻におけるタイムゾーンの動作
triggerTime
、createdTime
、updatedTime
の各フィールドは、すべてUTC(協定世界時)のタイムゾーンを使用します。Alexaは、タイマーがユーザーのタイムゾーンでの正しい時刻に鳴動するよう必要な計算を行います。
エラーメッセージの一覧
HTTPステータスコード | 列挙 | メッセージ | API |
---|---|---|---|
400 | INVALID_DURATION_FORMAT | リクエストした時間形式が正しくありません。 | 作成 |
INVALID_TIMER_ID | タイマーIDがnullまたは空白です。 | 取得、再開、一時停止、削除 | |
MAX_DURATION_EXCEEDED | タイマーの継続時間は2時間を超えて指定できません。 | 作成 | |
TIMER_LABEL_TOO_LONG | タイマーラベルが256文字の最大長を超えています。 | 作成 | |
INVALID_TIMER_LABEL | タイマーラベルが無効です。 | 作成 | |
TIMER_ALREADY_PAUSED | 既にPAUSED状態のタイマーを一時停止しようとしました。 | 一時停止 | |
TIMER_IS_NOT_PAUSED | PAUSED状態ではないタイマーを再開しようとしました。 | 再開 | |
401 | UNAUTHORIZED | 次の原因による認可/ 認証のエラーです:トークンが存在しない、無効、または権限がありません。 |
認可。accessToken のskillId またはdeviceId がnullの場合にも発生します。
|
403 | MAX_TIMERS_EXCEEDED | デバイス上のタイマーが最大件数(25件)に達しました。 | 作成 |
404 | TIMER_NOT_FOUND | タイマーが存在しません。 | 取得、再開、一時停止、削除。 |
500 | INTERNAL_SERVER_ERROR | 予期しないサーバー側のエラーです。 | すべてのAPI |
504 | DEVICE_NOT_REACHABLE | デバイスにアクセスできません。またはデバイスがオフラインです。 | すべてのAPI |
タイマーイベントのサブスクリプション
タイマーイベントをサブスクリプションすると、AlexaタイマーAPIを呼び出さずにスキルにこれらのイベントを通知できます。スキルでは、アカウントリンクを使用して外部アプリを組み込み、これらのイベントの通知を使用して、アプリ内のタイマーの削除や変更など、アプリの変更を行うことができます。
イベントの通知は順不同で届くので、タイマーイベントの結果としてスキルが実行するアクションでは、イベントのタイムスタンプに注意する必要があります。たとえば、タイマーが2回更新され、先に更新されたイベントが次に更新されたイベントの後に届いた場合、先に更新されたものは破棄される必要があります。
Alexaは、スキルサービスが応答で確認を送信しなかった場合、イベントの再配信を試行します。スキルサービスは過去のイベントをAlexaから取得することはできず、配信されたイベントを利用する必要があります。
イベントのサブスクリプションの詳細については、Alexaスキルのスキルイベントを参照してください。
JSON形式のタイマーイベント
スキルはタイマーイベントに登録できます。これを設定するには、skill.json
マニフェストファイルを設定します。設定方法の詳細については、スキルサービスでのイベントの使用を参照してください。