AlexaタイマーAPIリファレンス



AlexaタイマーAPIリファレンス

AlexaタイマーAPIを使うと、タイマーを作成したり管理したりする機能をスキルに追加できます。このリファレンスでは、AlexaタイマーAPIで使用できるオペレーションについて説明します。

タイマーの動作の詳細についてはAlexaタイマーの概要Alexaタイマーのベストプラクティスを参照してください。

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エラーが返されます。

リクエスト

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形式の継続時間 必須です。タイマーの継続時間です。24時間未満で指定する必要があります。たとえば、durationが8時間に設定された場合、タイマー作成時刻の8時間後にタイマーが鳴動します。
timerLabel 文字列 任意です。タイマーの名前を256文字以内で指定します。
creationBehavior オブジェクト タイマー作成動作を定義するオブジェクトです。
creationBehavior.displayExperience オブジェクト 画面付きのAlexa搭載デバイスに作成したタイマーを表示するかどうかを定義するオブジェクトです。
creationBehavior.displayExperience.visibility 文字列 次のいずれかになります( VISIBLEHIDDEN)。デフォルトは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のみ指定できます。

playAudibletrueの場合、次の動作が発生します。

  1. タイマーの指定時間が経過します。
  2. タイマーを停止するには、ユーザーが「アレクサ、ストップ」と発話する必要があります。ユーザーがタイマーを停止しない場合、鳴動時間いっぱいまで鳴り続けます。

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が言うテキストが含まれます。ユーザーが「ストップ」と言うとタイマーの鳴動を停止します。このタイマーは、ユーザーに次のステップを指示するようなスキルに組み込むことができます。

playAudibletrueの場合、次の動作が発生します。

  1. タイマーが鳴ります。
  2. ユーザーが「ストップ」と言います。
  3. ユーザーが「ストップ」と言った後、アナウンスが読み上げられます。

playAudiblefalseの場合、次の動作が発生します。

  • タイマーの指定時間が経過し、アナウンスがすぐに開始されます。

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と組み合わせて使用することで、独自のタスクと連携できます。

playAudibletrueの場合、次の動作が発生します。

  1. タイマーが鳴ります。
  2. ユーザーが「ストップ」と言った場合。
  3. 確認ダイアログの中で、ユーザーは同意または拒否します。
  4. ユーザーが確認ダイアログに同意すると、スキルが起動します。

playAudiblefalseの場合、次の動作が発生します。

  1. タイマーの指定時間が経過します。
  2. 確認ダイアログの中で、ユーザーは同意または拒否します。
  3. ユーザーが確認ダイアログに同意すると、スキルが起動します。

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 列挙

タイマーのステータスは次のいずれかです。

  • ON - タイマーがアクティブでtriggerTimeに鳴動するか、triggerTime < now()の場合は既に鳴動を開始しています。
  • OFF - タイマーがアクティブではなく、今後鳴ることはありません。
  • PAUSED - タイマーはONになりましたが、一時停止されました。このタイマーが再開されると、ステータスはONに変わります。
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 タイマーには24時間以上の時間を指定できません。
INVALID_TIMER_LABEL タイマーラベルが無効か、タイマーラベルの長さが256文字を超えています。
INVALID_SCHEMA_FORMAT 次のいずれかになります:
  • リクエストしたタイマーの時間形式が正しくありません。
  • LAUNCH_TASKオペレーションにはカスタムタスクを含める必要があります。
  • NOTIFY_ONLYANNOUNCEはどのような形式のカスタムタスクもサポートしていません。
  • playAudibleの値はtrueまたはfalseに設定できます。期間が30分を超える場合はtrueにする必要があります。LAUNCH_TASKタイマー。
TEXT_TOO_LONG ANNOUNCEのテキスト、確認タスクやカスタムタスクのテキストの最大サイズは2 KBまでです。
OPERATION_NOT_SUPPORTED オペレーションでサポートされる値は、NOTIFY_ONLYANNOUNCELAUNCH_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 列挙

タイマーのステータスは次のいずれかです。

  • ON - タイマーがアクティブでtriggerTimeに鳴動するか、triggerTime < now()の場合は既に鳴動を開始しています。
  • OFF - タイマーがアクティブではなく、今後鳴ることはありません。
  • PAUSED - タイマーはONになりましたが、一時停止されました。このタイマーが再開されると、ステータスはONに変わります。
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 列挙

タイマーのステータスは次のいずれかです。

  • ON - タイマーがアクティブでtriggerTimeに鳴動するか、triggerTime < now()の場合は既に鳴動を開始しています。
  • OFF - タイマーがアクティブではなく、今後鳴ることはありません。
  • PAUSED - タイマーはONになりましたが、一時停止されました。このタイマーが再開されると、ステータスはONに変わります。
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 操作に失敗しました。 サービス側で何らかの問題が発生しています。

タイマー時刻におけるタイムゾーンの動作

triggerTimecreatedTimeupdatedTimeの各フィールドは、すべてUTC(協定世界時)のタイムゾーンを使用します。Alexaは、タイマーがユーザーのタイムゾーンでの正しい時刻に鳴動するよう必要な計算を行います。

エラーメッセージの一覧

HTTPステータスコード列挙メッセージAPI
400 INVALID_DURATION_FORMATリクエストした時間形式が正しくありません。作成
INVALID_TIMER_ID タイマーIDがnullまたは空白です。取得、再開、一時停止、削除
MAX_DURATION_EXCEEDED タイマーには24時間以上の時間を指定できません。作成
TIMER_LABEL_TOO_LONG タイマーラベルが256文字の最大長を超えています。作成
INVALID_TIMER_LABEL タイマーラベルが無効です。作成
TIMER_ALREADY_PAUSED 既にPAUSED状態のタイマーを一時停止しようとしました。一時停止
TIMER_IS_NOT_PAUSED PAUSED状態ではないタイマーを再開しようとしました。 再開
401 UNAUTHORIZED 次の原因による認可/
認証のエラーです:トークンが存在しない、無効、または権限がありません。
認可。accessTokenskillIdまたは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マニフェストファイルを設定します。設定方法の詳細については、スキルサービスでのイベントの使用を参照してください。