Alertsインターフェース(ベータ)



Alertsインターフェース(ベータ)

このインターフェースは、特定の時刻または経過時間のタイマー、アラーム、リマインダーを設定したり、設定されたタイマーを削除するようガジェットに指示するディレクティブを提供します。

このインターフェースのサポート

このインターフェースをサポートするには、Capabilitiesの配列に以下のエントリを含むDiscover.Responseイベントを使用して、EchoデバイスのDiscoverディレクティブにガジェットから応答を返す必要があります。

{
   "type": "AlexaInterface",
   "interface": "Alerts",
   "version": "1.1"
}

ディレクティブ

このインターフェースには、以下に説明する2つのディレクティブ (SetAlertDeleteAlert)が含まれます。

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です。 文字列

ペイロードフィールド

以下の表のフィールドのうち、ガジェットでは現在、scheduledTimetypetokenのみを受取ります。

フィールド 説明
token アラートを一意に識別するIDです。 文字列
type アラートのタイプを識別します。

有効な値は、 TIMERALARMREMINDERです。値がガジェットで認識されない場合、デフォルトの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です。 文字列