Firebase Cloud Messaging HTTP v1 API を使用すると、iOS デバイスでライブ アクティビティ通知をリモートで送信、更新、終了できます。ライブ アクティビティを使用するには iOS 16.1 が必要です。ライブ アクティビティ通知をリモートで開始するには iOS 17.2 が必要です。
始める前に
Firebase Cloud Messaging でのライブ アクティビティを開始する前に、Apple プラットフォームで Firebase Cloud Messaging クライアント アプリを設定するの手順に沿って、Firebase Cloud Messaging を作成してクライアント アプリに追加します。
ライブ アクティビティを開始する
Firebase Cloud Messaging を使用してライブ アクティビティをリモートで開始するには、Apple からプッシュ開始トークンを取得する必要があります。また、ターゲット アプリの FCM 登録トークンも必要です。
ライブ アクティビティを開始するペイロードを作成するには、次のコードサンプルの apns.payload
フィールドに入力して、FCM を使用してライブ アクティビティをリモートで開始します。API Explorer を使用してペイロードを作成してテストできます。
"message":{ "token": "<fcm_token:test>", "apns":{ "live_activity_token": "<live_activity_push_to_start_token>", "headers":{ "apns-priority": "10" }, "payload":{ "aps": { "timestamp": <timestamp>, "event": "start", "content-state": { "demo": 1 }, "attributes-type": "DemoAttributes", "attributes": { "demoAttribute": 1, }, "alert": { "title": "test title", "body": "test body" } } } } }
ライブ アクティビティを更新する
Firebase Cloud Messaging を使用してライブ アクティビティをリモートで更新するには、Apple からプッシュトークンを取得する必要があります。また、ターゲット アプリの FCM 登録トークンも必要です。
ライブ アクティビティを更新するペイロードを作成するには、次のコードサンプルの apns.payload
フィールドに入力して、FCM を使用してライブ アクティビティをリモートで更新します。API Explorer を使用してペイロードを作成してテストできます。
"message":{ "token": "<fcm_token:test>", "apns":{ "live_activity_token": "<live_activity_push_token>", "headers":{ "apns-priority": "10" }, "payload":{ "aps": { "timestamp": <timestamp>, "event": "update", "content-state": { "test1": 100, "test2": "demo" }, "alert": { "title": "test title", "body": "test body" } } } } } }
ライブ アクティビティを終了する
Firebase Cloud Messaging を使用してライブ アクティビティを終了するには、Apple からプッシュ トークンを取得する必要があります。また、対象アプリの FCM 登録トークンも必要です。
ライブ アクティビティを終了するペイロードを作成するには、次のコードサンプルの apns.payload
フィールドに入力して、FCM を使用してライブ アクティビティをリモートで終了します。API Explorer を使用してペイロードを作成してテストできます。
"message":{ "token": "<fcm_token:test>", "apns":{ "live_activity_token": "<live_activity_push_token>", "headers":{ "apns-priority": "10" }, "payload":{ "aps": { "timestamp": <timestamp>, "dismissal-date": <dismissal_date>, "event": "end", "content-state": { "test1": 100, "test2": "demo" }, "alert": { "title": "test title", "body": "test body" } } } } } }