プロアクティブイベントのスキーマ



プロアクティブイベントのスキーマ

プロアクティブイベントを使うようスキルサービスを設定する方法については、ProactiveEvents APIを参照してください。このドキュメントでは、ProactiveEvents APIによってサポートされるイベントスキーマについて説明します。

標準のイベント構造

{
    "name": "SampleEventName",
    "payload": {
        "sampleAttribute": {
            "nestedStringAttribute": "sampleValue"
        },
        "anotherSampleAttribute": {
            "nestedIntegerAttribute": 1,
            "nestedFloatAttribute": 10.5
        }
    }
}

イベントの命名規則とテンプレート

すべてのイベント名の先頭には、名前空間としてAMAZON.を付ける必要があります。イベント名自体は2つのパートで構成し、それぞれのパートを「.」で区切ります。イベント名の最初のパートには、イベントによって記述される件名を指定します。2番目のパートにはイベントが生成される理由を指定します。テンプレートの構造は次のとおりです。

{
    "name": "AMAZON.EventNamePartOne.EventNamePartTwo",
    "payload": {
        "sampleAttribute": {
            "nestedStringAttribute": "sampleValue"
        },
        "anotherSampleAttribute": {
            "nestedIntegerAttribute": 1,
            "nestedFloatAttribute": 10.5
        }
    }
}

イベントカタログ

カタログは、スキルで使用できるイベントの種類が記載されたリストです。

イベントの説明 想定されるユーザーエクスペリエンス イベント名
天気の注意報や警報 「この地域に異常気象警報が発令されています。Alexa天気を開き、詳細を聞いてください。」 AMAZON.WeatherAlert.Activated
サッカーの最新スコア マイリーグの試合速報です。オレンジズ1点、アップルズ2点です。 AMAZON.SportsEvent.Updated
メッセージのリマインダー <sender>から、<number>件の<messageFreshness>、<messageStatus>、<urgency>の<message/messages>が届いています AMAZON.MessageAlert.Activated
注文の最新ステータス <company>での予約注文を受け付けました
<company>でのご注文を受け付けました
<company>でのご注文は出荷準備中です
<company>でのご注文は出荷済みで、お届け予定は<date>です
<company>でのご注文は配達中で、<date>までのお届け予定です
<company>でのご注文は<date>に配達を完了しました
<company>でのご注文は配達を完了しています
AMAZON.OrderStatus.Updated
予約の確認 <date>の<company>での<content of occasion>の<reservation/appointment>は、<confirmed/cancelled/rescheduled>されました AMAZON.Occasion.Updated
ごみ収集のリマインダー 明日は<garbage_type>の収集日です AMAZON.TrashCollectionAlert.Activated
ソーシャルゲームの招待 <friend/contact>の<contactName>から、 <gameName>の<match/rematch/game>に<invited/challenged>されました AMAZON.SocialGameInvite.Available
メディアコンテンツの利用状況通知 <programmingName>は、<date>に<providerName>で
<air/stream/release/premiere>されます
AMAZON.MediaContent.Available

AMAZON.WeatherAlert.Activated

目的: 天気の注意報や警報

想定されるユーザーエクスペリエンス: 「この地域に<weatherAlert>が発令されています。この情報は<source>がお送りしています。」

ペイロードのパラメーター

payloadオブジェクトのパラメーターを含みます。

名前 必須 複数ロケールのサポート 説明
weatherAlert WeatherAlert    
weatherAlert.source × 文字列  
weatherAlert.alertType WeatherAlertType   以下のいずれかになります。 TORNADO, HURRICANE, SNOW_STORM, THUNDER_STORM

{
    "name": "AMAZON.WeatherAlert.Activated",
    "payload": {
        "weatherAlert": {
            "source": "localizedattribute:source",
            "alertType": "TORNADO"
        }
    }
}

AMAZON.SportsEvent.Updated

目的: サッカーイベントの最新スコア

想定されるユーザーエクスペリエンス: 「マイリーグの試合速報です。アップルズが得点しました。 オレンジズ1点、アップルズ2点です。」

ペイロードのパラメーター

payloadオブジェクトのパラメーターです。

名前 必須 複数ロケールのサポート 説明
update × Goal    
update.ScoreEarned 整数    
update.teamName 文字列 ×  
sportsEvent SportsEvent    
sportsEvent.eventLeague Soccer    
sportsEvent.EventLeague.name 文字列  
sportsEvent.homeTeamStatistic GameStatistic    
sportsEvent.homeTeamStatistic.team SportsTeam    
sportsEvent.homeTeamStatistic.team.name 文字列 ×  
sportsEvent.homeTeamStatistic.score 整数    
sportsEvent.awayTeamStatistic GameStatistic    
sportsEvent.awayTeamStatistic.team SportsTeam    
sportsEvent.awayTeamStatistic.team.name 文字列 ×  
sportsEvent.awayTeamStatistic.score 整数    

{
    "name": "AMAZON.SportsEvent.Updated",
    "payload": {
        "update": {
            "scoreEarned": 1,
            "teamName": "アーセナル"
        },
        "sportsEvent": {
            "eventLeague": {
                "name": "localizedattribute:eventLeagueName"
            },
            "homeTeamStatistic": {
                "team": {
                    "name": "オレンジズ"
                },
                "score": 1
            },
            "awayTeamStatistic": {
                "team": {
                    "name": "アップルズ"
                },
                "score": 2
            }
        }
    }
}

AMAZON.MessageAlert.Activated

目的: メッセージのリマインダー

想定されるユーザーエクスペリエンス: 「<sender>から、<number>件の<messageFreshness>、<messageStatus>、<urgency>のメッセージが届いています。 」

ペイロードのパラメーター

名前 必須 複数ロケールのサポート 説明
state MessageState    
state.status MessageStatus   以下のいずれかになります。 UNREADFLAGGED
state.freshness × MessageFreshness   以下のいずれかになります。 NEWOVERDUE
messageGroup MessageGroup    
messageGroup.creator Person    
messageGroup.creator.name 文字列 ×  
messageGroup.count 整数    
messageGroup.urgency × urgency   使用する場合、値はURGENTになります。

{
    "name": "AMAZON.MessageAlert.Activated",
    "payload": {
        "state": {
            "status": "UNREAD",
            "freshness": "NEW"
        },
        "messageGroup": {
            "creator": {
                "name": "太郎"
            },
            "count": 5,
            "urgency": "URGENT"
        }
    }
}

AMAZON.OrderStatus.Updated

目的: 注文の最新ステータス

想定されるユーザーエクスペリエンス: ユーザーエクスペリエンスはOrderStatusの列挙値によって変わります。

OrderStatusの列挙値によって、このスキーマのユーザーエクスペリエンスは次のようになります。

  • PREORDER_RECEIVED: <company>での予約注文を受け付けました
  • ORDER_RECEIVED: <company>でのご注文を受け付けました
  • ORDER_PREPARING: <company>でのご注文は出荷準備中です
  • ORDER_SHIPPED: <company>でのご注文は出荷済みです。<date>までのお届け予定です
  • ORDER_OUT_FOR_DELIVERY: <company>でのご注文は配達中です。<datetime>までのお届け予定です。
  • ORDER_DELIVERED: <company>でのご注文は<date>に配達を完了しました
  • ORDER_DELIVERED: <company>でのご注文は配達を完了しています

ペイロードのパラメーター

名前 必須 複数ロケールのサポート 説明
state OrderState    
state.status OrderStatus   以下のいずれかになります。 PREORDER_RECEIVEDORDER_RECEIVEDORDER_PREPARINGORDER_SHIPPEDORDER_OUT_FOR_DELIVERYORDER_OUT_FOR_DELIVERYORDER_DELIVERED
state.enterTimeStamp × dateTime    
state.deliveryDetails × ParcelDelivery    
order Order    

<company>での予約注文を受け付けました


{
    "name": "AMAZON.OrderStatus.Updated",
    "payload": {
        "state": {
            "status": "PREORDER_RECEIVED"
        },
        "order": {
            "seller": {
                "name": "localizedattribute:sellerName"
            }
        }
    }
}

<company>でのご注文を受け付けました


{
    "name": "AMAZON.OrderStatus.Updated",
    "payload": {
        "state": {
            "status": "ORDER_RECEIVED"
        },
        "order": {
            "seller": {
                "name": "localizedattribute:sellerName"
            }
        }
    }
}

<company>でのご注文は出荷済みで、お届け予定は<date>です


{
    "name": "AMAZON.OrderStatus.Updated",
    "payload": {
        "state": {
            "status": "ORDER_SHIPPED",
            "deliveryDetails": {
                "expectedArrival": "2018-12-14T23:32:00.463Z"
            }
        },
        "order": {
            "seller": {
                "name": "localizedattribute:sellerName"
            }
        }
    }
}

<company>でのご注文は配達中です。<datetime>までのお届け予定です


{
    "name": "AMAZON.OrderStatus.Updated",
    "payload": {
        "state": {
            "status": "ORDER_OUT_FOR_DELIVERY",
            "deliveryDetails": {
                "expectedArrival": "2018-09-16T22:10:01.00Z"
            }
        },
        "order": {
            "seller": {
                "name": "localizedattribute:sellerName"
            }
        }
    }
}

<company>でのご注文は<date>に配達を完了しました

{
    "name": "AMAZON.OrderStatus.Updated",
    "payload": {
        "state": {
            "status": "ORDER_DELIVERED",
            "enterTimestamp": "20180916T030000Z   2018-09-16T03:00:00.463Z"
        },
        "order": {
            "seller": {
                "name": "localizedattribute:sellerName"
            }
        }
    }
}

<company>でのご注文は配達を完了しています


{
    "name": "AMAZON.OrderStatus.Updated",
    "payload": {
        "state": {
            "status": "ORDER_DELIVERED"
        },
        "order": {
            "seller": {
                "name": "localizedattribute:sellerName"
            }
        }
    }
}

AMAZON.Occasion.Updated

目的: 予約の確認

想定されるユーザーエクスペリエンス: 「<date>の<company>での<subject>の<reservation/appointment>は、<requested/created/confirmed/cancelled/rescheduled>されました。『<skill name>で確認して』と言ってください。」

ペイロードのパラメーター

名前 必須 複数ロケールのサポート 説明
state ConfirmationState    
state.confirmationStatus ConfirmationStatus   以下のいずれかになります。 CONFIRMEDCANCELEDRESCHEDULEDREQUESTEDCREATEDUPDATED  
occasion Occasion    
occasion.occasionType OccasionType   以下のいずれかになります。 RESERVATION_REQUESTRESERVATIONAPPOINTMENT_REQUESTAPPOINTMENT
occasion.subject 文字列  
occasion.provider Organization    
occasion.provider.name 文字列  
occasion.bookingTime dateTime    
occasion.broker × Skill    
occasion.broker.name 文字列  

{
    "name": "AMAZON.Occasion.Updated",
    "payload": {
        "state": {
            "confirmationStatus": "CONFIRMED"
        },
        "occasion": {
            "occasionType": "APPOINTMENT",
            "subject": "localizedattribute:subject",
            "provider": {
                "name": "localizedattribute:providerName"
            },
            "bookingTime": "2018-11-20T19:16:31Z",
            "broker": {
                "name": "localizedattribute:brokerName"
            }
        }
    }
}

AMAZON.TrashCollectionAlert.Activated

目的: ごみ収集のリマインダー

想定されるユーザーエクスペリエンス: 「次の<day_of_the_week>は、<garbage_type>の収集日です」

ペイロードのパラメーター

名前 必須 複数ロケールのサポート 説明
alert TrashCollectionAlert   ごみ収集に関する情報を含みます。
alert.garbageTypes GarbageType[]   GarbageType値のリストです。配列サイズは1~5です。次の値が想定されます。 BOTTLESBULKYBURNABLECANSCLOTHINGCOMPOSTABLECRUSHABLEGARDEN_WASTEGLASSHAZARDOUSHOME_APPLIANCESKITCHEN_WASTELANDFILLPET_BOTTLESRECYCLABLE_PLASTICSWASTE_PAPER
alert.collectionDayOfWeek DayOfWeek   以下のいずれかになります。 MONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAYSUNDAY

イベント

{
    "name": "AMAZON.TrashCollectionAlert.Activated",
    "payload": {
        "alert": {
            "garbageTypes": [
                "COMPOSTABLE",
                "RECYCLABLE_PLASTICS"
            ],
            "collectionDayOfWeek": "TUESDAY"
        }
    }
}

AMAZON.MediaContent.Available

目的: 特定の作品が利用可能になる日時と、そのプロバイダーに関する情報を提供します。

想定されるユーザーエクスペリエンス:「<programmingName>は、<date>に<providerName>で<air/stream/release/premiere>されます」

ペイロードのパラメーター

payloadオブジェクトのパラメーターを含みます。

名前 必須 複数ロケールのサポート 説明
availability Availability   利用可能状況に関する情報を提供します。
availability.startTime 文字列    
availability.provider × Thing   プロバイダー情報です。
availability.provider.name 文字列 プロバイダー名です。
availability.method DistributionMethod   配信方法です。以下のいずれかになります。 STREAMAIRRELEASEPREMIEREDROP
content CreativeWork   作品に関する情報を含みます。
content.name 文字列 作品名です。
content.contentType MediaTypes   以下のいずれかになります。 BOOKEPISODEALBUMSINGLEMOVIEGAME

イベント

{
    "name": "AMAZON.MediaContent.Available",
    "payload": {
        "availability": {
            "startTime": "2018-11-20T21:00:00Z",
            "provider": {
                "name": "localizedattribute:providerName"
            },
            "method":"AIR"
        },
        "content": {
            "name": "localizedattribute:contentName",
            "contentType":"BOOK"
        }
    }
}

AMAZON.SocialGameInvite.Available

目的: ゲームへの招待を送ります。想定されるユーザーエクスペリエンス: 「<friend/contact>の<contactName>から、 <gameName>の<match/rematch/game>に<invited/challenged>されました」

ペイロードのパラメーター

これらのパラメーターはpayloadオブジェクトに含まれます。

名前 必須 複数ロケールのサポート 説明
invite GameInvite   招待の情報を含むオブジェクトです。
invite.inviter Person   招待者に関する情報を含むオブジェクトです
invite.inviter.name 文字列 × 招待者の名前です。
invite.inviter.relationshipToInvitee 列挙   以下のいずれかになります。 FRIENDCONTACT
invite.inviter.inviteType 列挙   以下のいずれかになります。 CHALLENGEINVITE
game Game   ゲームの情報を含むオブジェクトです。
game.offer OfferType   以下のいずれかになります。 MATCHREMATCHGAME
game.name 文字列   ゲームの名前です。

localizedAttributesのパラメーター

これらのパラメーターは、localizedAttributes配列の各項目に使われます。各項目にはlocalegameNameが含まれます。このため、配列の項目はサポートされるロケールごとに存在します。ローカライズしたアトリビュートを使って対応するロケールごとに異なる値を指定する方法については、イベントを参照してください。

名前 必須 説明
locale 列挙 サポートされるロケールのいずれかです(例:「en-US」)。
gameName 文字列 ゲーム名です(ロケールごとに異なる名前を指定できます)。

イベント

{
    "name": "AMAZON.SocialGameInvite.Available",
    "payload": {
        "invite": {
            "inviter": {
                "name": "Max"
            },
            "relationshipToInvitee": "FRIEND",
            "inviteType": "CHALLENGE"
        },
        "game": {
            "offer": "MATCH",
            "name": "localizedattribute:gameName"
        }
    },
    "localizedAttributes": [
        {
            "locale": "en-US",
            "gameName": "The Red"
        },
        {
            "locale": "ja-JP",
            "gameName": "レッド"
        }
    ]
}