Démarrer une activité en direct
/messages/live_activity/start
Utilisez cet endpoint pour démarrer à distance les activités en direct affichées dans votre application iOS. Cet endpoint nécessite une configuration supplémentaire.
Après avoir créé une activité en direct, envoyez une requête POST pour cibler un Segment, une audience connectée ou des utilisateurs spécifiques. Identifiez les utilisateurs spécifiques par leur ID utilisateur externe, leur alias d’utilisateur, ou les deux. Pour en savoir plus sur les activités en direct d’Apple, consultez Starting and updating Live Activities with ActivityKit push notifications.
Si content-available n’est pas défini, la priorité par défaut du service Apple Push Notification (APNs) est de 10. Si content-available est défini, cette priorité est de 5. Pour plus d’informations, consultez l’objet push Apple.

Après une requête /messages/live_activity/start réussie, attendez au moins 5 minutes avant d’envoyer la première requête /messages/live_activity/update pour le même activity_id. Ce délai laisse à Braze et aux APNs le temps d’enregistrer la nouvelle activité en direct et le mappage de son jeton. Si vous envoyez la première mise à jour trop tôt, elle risque de ne pas s’appliquer à l’activité.

Pour mettre fin à une activité en direct, utilisez l’endpoint /messages/live_activity/update avec end_activity défini sur true.
Planifier la fermeture automatique
Pour planifier la fermeture automatique d’une activité en direct après son démarrage, programmez depuis votre backend une requête de suivi vers l’endpoint de mise à jour.
- Envoyez une requête
/messages/live_activity/startavec unactivity_idque vous pourrez réutiliser ultérieurement. - Stockez cet
activity_idet l’heure de fin souhaitée dans le planificateur de votre backend. - À l’heure de fin prévue, envoyez une requête
/messages/live_activity/updateavecend_activitydéfini surtrue. - Configurez le comportement de fermeture dans cette même requête de mise à jour. Pour plus de détails, consultez l’endpoint
/messages/live_activity/update. - Vérifiez les événements d’envoi et de résultat dans le journal d’activité des messages.
Conditions préalables
Pour utiliser cet endpoint, remplissez les conditions préalables suivantes :
- Générez une clé API avec l’autorisation
messages.live_activity.start. - Créez une activité en direct à l’aide du SDK Braze Swift.

Si la charge utile finale est plus grande que la taille maximale autorisée par le service correspondant, l’envoi n’aboutira pas.

Lorsque vous ciblez des utilisateurs spécifiques, Braze ne démarre une activité en direct que pour les external_user_ids et user_aliases qui correspondent à des utilisateurs existants.
Limite de débit
La limite de débit par défaut de Braze, soit 250 000 requêtes par heure, s’applique à cet endpoint, comme indiqué dans Limites de débit de l’API.
Corps de la requête
{
"app_id": "(required, string) App API identifier retrieved from the Developer Console.",
"activity_id": "(required, string) Define a custom string as your `activity_id`. Use this ID to send update or end events to your Live Activity.",
"activity_attributes_type": "(required, string) The activity attributes type you define within `liveActivities.registerPushToStart` in your app.",
"activity_attributes": "(required, object) The static attribute values for the activity type (such as the sports team names, which don't change)",
"content_state": "(required, object) You define the ContentState parameters when you create your Live Activity. Pass the updated values for your ContentState using this object. The format of this request must match the shape you initially defined.",
"stale_date": "(optional, datetime in ISO-8601 format) The time the Live Activity content is marked as outdated in the user’s UI.",
"notification": "(required, object) Include an `apple_push` object to define a push notification that creates an alert for the user, displayed on paired watchOS devices. Include `notification.alert.title` and `notification.alert.body`.",
// Include one targeting method:
// 1. "external_user_ids", "user_aliases", or both (combined maximum 50)
// 2. "custom_audience"
// 3. "segment_id"
"external_user_ids": "(optional, array of strings) see external user identifier",
"user_aliases": "(optional, array of user alias objects) see user alias object",
"custom_audience": "(optional, connected audience object) see connected audience",
"segment_id": "(optional, string) see segment identifier"
}
Paramètres de la requête
| Paramètre | Requis | Type de données | Description |
|---|---|---|---|
app_id |
Requis | Chaîne de caractères | Identifiant API de l’application, récupéré depuis la page Clés API. |
activity_id |
Requis | Chaîne de caractères | Définissez une chaîne de caractères personnalisée comme activity_id. Utilisez cet ID pour envoyer des événements de mise à jour ou de fin à votre activité en direct. |
activity_attributes_type |
Requis | Chaîne de caractères | Le type d’attributs d’activité que vous définissez dans liveActivities.registerPushToStart dans votre application. |
activity_attributes |
Requis | Objet | Les valeurs d’attributs statiques pour le type d’activité (comme les noms des équipes sportives, qui ne changent pas). |
content_state |
Requis | Objet | Vous définissez les paramètres ContentState lorsque vous créez votre activité en direct. Transmettez les valeurs mises à jour de votre ContentState à l’aide de cet objet.Le format de cette requête doit correspondre à la structure que vous avez initialement définie. |
stale_date |
Facultatif | Datetime (chaîne ISO-8601) |
Ce paramètre indique au système à quel moment le contenu de l’activité en direct est marqué comme obsolète dans l’interface utilisateur. |
notification |
Requis | Objet | Incluez un objet apple_push pour définir une notification push. Le comportement de cette notification push varie selon que l’utilisateur est actif ou qu’il utilise un appareil proxy.
|
external_user_ids |
Facultatif si user_aliases, segment_id ou custom_audience est fourni |
Tableau de chaînes de caractères | Voir ID utilisateur externe. |
user_aliases |
Facultatif si external_user_ids, segment_id ou custom_audience est fourni |
Tableau d’objets alias d’utilisateur | Voir objet alias d’utilisateur. |
segment_id |
Facultatif si external_user_ids, user_aliases ou custom_audience est fourni |
Chaîne de caractères | Voir identifiant de Segment. |
custom_audience |
Facultatif si external_user_ids, user_aliases ou segment_id est fourni |
Objet audience connectée | Voir audience connectée. |
Vous pouvez inclure external_user_ids et user_aliases dans la même requête. La longueur combinée de leurs tableaux ne peut pas dépasser 50. Braze cible les utilisateurs qui correspondent à l’un ou l’autre des paramètres et n’envoie le message qu’une seule fois lorsque plusieurs identifiants renvoient au même utilisateur.
Ne combinez pas external_user_ids ou user_aliases avec segment_id ou custom_audience. Sur cet endpoint, utilisez custom_audience pour transmettre des filtres d’audience connectée.
Exemple de requête
curl --location --request POST 'https://rest.iad-01.braze.com/messages/live_activity/start' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {YOUR_REST_API_KEY}' \
--data-raw '{
"app_id": "{YOUR_APP_API_IDENTIFIER}",
"activity_id": "football-chiefs-bills-2024-01-21",
"content_state": {
"teamOneScore": 0,
"teamTwoScore": 0
},
"activity_attributes_type": "FootballActivity",
"activity_attributes": {
"team1Name": "Chiefs",
"team2Name": "Bills"
},
"stale_date": "2024-01-22T16:55:49+0000",
"notification": {
"alert": {
"body": "The game is starting! Tune in soon!",
"title": "Chiefs v. Bills"
}
},
"external_user_ids": ["user-id1", "user-id2"],
"user_aliases": [
{
"alias_name": "user-name",
"alias_label": "user-label"
}
]
}'
Réponse
Cet endpoint peut renvoyer deux codes de statut : 201 et 4XX.
Exemple de réponse réussie
Un code de statut 201 est renvoyé si la requête est correctement formatée et que Braze la reçoit. Le code de statut 201 peut renvoyer le corps de réponse suivant.
{
"message": "success"
}
Exemple de réponse d’erreur
La classe de codes de statut 4XX indique une erreur côté client. Consultez l’article Erreurs et réponses de l’API pour en savoir plus sur les erreurs que vous pourriez rencontrer.
Le code de statut 400 peut renvoyer le corps de réponse suivant.
{
"error": "\nProblem:\n message body does not match declared format\nResolution:\n when specifying application/json as content-type, you must pass valid application/json in the request's 'body' "
}