Alertsインターフェース(ベータ)
このインターフェースは、特定の時刻または経過時間のタイマー、アラーム、リマインダーを設定したり、設定されたタイマーを削除するようガジェットに指示するディレクティブを提供します。
このインターフェースのサポート
このインターフェースをサポートするには、Capabilities
の配列に以下のエントリを含むDiscover.Response
イベントを使用して、EchoデバイスのDiscover
ディレクティブにガジェットから応答を返す必要があります。
{ "type": "AlexaInterface", "interface": "Alerts", "version": "1.1" }
ディレクティブ
このインターフェースには、以下に説明する2つのディレクティブ (SetAlert
とDeleteAlert
)が含まれます。
SetAlertディレクティブ
このディレクティブは、特定の時刻または経過時間のタイマー、アラーム、リマインダーを設定するようガジェットに指示します。ガジェットは、以前に設定されたアラートがAlexaアプリを使って再度有効化された場合や、一時停止されたタイマーがAlexaアプリで再開された場合に、アラートを設定する音声リクエストの結果として、このディレクティブを受け取ります。
メッセージ定義
このディレクティブは、.protoファイルによって次のように定義されています。
directiveHeader.proto
message DirectiveHeaderProto { string namespace = 1; string name = 2; string messageId = 3; string dialogRequestId = 4; }
alertsSetAlertDirective.proto
message SetAlertDirectiveProto { Directive directive = 1; message Directive { alerts.SetAlertDirectivePayloadProto payload = 2; header.DirectiveHeaderProto header = 1; } }
alertsSetAlertDirectivePayload.proto
message SetAlertDirectivePayloadProto { repeated string assetPlayOrder = 5; int32 loopPauseInMilliSeconds = 8; string scheduledTime = 3; repeated Assets assets = 4; message Assets { string assetId = 1; string url = 2; } int32 loopCount = 7; string backgroundAlertAsset = 6; string type = 2; string token = 1; }
フィールドの説明
このディレクティブには以下のフィールドが含まれています。
ヘッダーフィールド
フィールド | 説明 | 型 |
---|---|---|
namespace |
このディレクティブの名前空間で、Alerts が入ります。 |
文字列 |
name |
このディレクティブの名前で、SetAlert が入ります。 |
文字列 |
messageId |
このディレクティブのインスタンスを一意に定義するIDです。文字列は空の場合があります。 | 文字列 |
dialogRequestId |
このディレクティブをユーザーからの特定の音声対話に関連付ける一意のIDです。 | 文字列 |
ペイロードフィールド
以下の表のフィールドのうち、ガジェットでは現在、scheduledTime
、type
、token
のみを受取ります。
フィールド | 説明 | 型 |
---|---|---|
token |
アラートを一意に識別するIDです。 | 文字列 |
type |
アラートのタイプを識別します。 有効な値は、 TIMER 、ALARM 、REMINDER です。値がガジェットで認識されない場合、デフォルトのALARM になります。 |
文字列 |
scheduledTime |
アラートの予定時刻(ISO 8601形式)です。 | 文字列 |
assets |
ガジェットが再生するオーディオアセットのリストです。各アセットには一意のIDとURLがあります。 | リスト |
assets.assetId |
オーディオアセットの一意のIDです。 | 文字列 |
assets.url |
クラウド上のアセットの場所です。このアセットは、ガジェットによってダウンロードされキャッシュされる場合があります。指定されたURLは、scheduledTime から60分間有効です。 |
文字列 |
assetPlayOrder |
ガジェットがオーディオアセットを再生するシークエンスです。 ガジェットはすべてのアセットを assetPlayOrder の順に再生する必要があります。ガジェットがアセットのダウンロードとキャッシュに失敗した場合は、Amazonが提供するオーディオファイルを使用します。 |
文字列 のリスト |
backgroundAlertAsset |
存在する場合、この値はアセットリストのassetId と一致します。backgroundAlertAsset がペイロードに含まれていない場合は、デフォルトでAlexaサウンドライブラリ内のAmazonが提供するサウンドが使用されます。これは、開発者ポータルのAlexa音声サービス>リソースからダウンロードできます。 |
文字列 |
loopCount |
アセットの各シークエンスが再生される回数です。たとえば、 値が2の場合は、ガジェットはassetPlayOrder を2回、リピート再生します。ペイロードに loopCount がない場合は、1時間が経過するか、ユーザーがアラートを停止するまで、アセットをリピート再生する必要があります。 |
int32 |
loopPauseInMilliSeconds |
アセットのリピート再生間の一時停止時間です。たとえば、loopPauseInMilliSeconds が300でloopCount が3の場合、ガジェットはアセットのそれぞれのリピート再生間に、300ミリ秒一時停止します。この値が指定されていないか、0に設定されている場合は、アセットのリピート再生間に一時停止はしません。 |
int32 |
DeleteAlertディレクティブ
このディレクティブは、既存のアラートを削除するようガジェットに指示します。ガジェットは、以前に設定されたアラートがAlexaアプリを使って削除された場合や、タイマーがAlexaアプリで一時停止された場合に、タイマー、アラーム、リマインダーをキャンセルまたは削除する音声リクエストの結果として、このディレクティブを受け取ります。
メッセージ定義
このディレクティブは、.protoファイルによって次のように定義されています。
directiveHeader.proto
message DirectiveHeaderProto { string namespace = 1; string name = 2; string messageId = 3; string dialogRequestId = 4; }
alertsDeleteAlertDirective.proto
message DeleteAlertDirectiveProto { Directive directive = 1; message Directive { alerts.DeleteAlertDirectivePayloadProto payload = 2; header.DirectiveHeaderProto header = 1; } }
alertsDeleteAlertDirectivePayload.proto
message DeleteAlertDirectivePayloadProto { string token = 1; }
フィールドの説明
このディレクティブには以下のフィールドが含まれています。
ヘッダーフィールド
フィールド | 説明 | 型 |
---|---|---|
namespace |
このディレクティブの名前空間で、Alerts が入ります。 |
文字列 |
name |
このディレクティブの名前で、DeleteAlert が入ります。 |
文字列 |
messageId |
このディレクティブのインスタンスを一意に定義するIDです。文字列は空の場合があります。 | 文字列 |
dialogRequestId |
このディレクティブをユーザーからの特定の音声対話に関連付ける一意のIDです。 | 文字列 |
ペイロードフィールド
フィールド | 説明 | 型 |
---|---|---|
token |
キャンセルするアラートを一意に識別するIDです。 | 文字列 |