Skip to content

Démarrer une activité en direct

post

/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, vous pouvez effectuer une requête POST pour démarrer à distance votre activité pour un segment, une audience connectée ou des ID utilisateur externes spécifiques. 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 10. Si content-available est défini, cette priorité est de 5. Consultez l’objet push Apple pour plus de détails.

Planifier la suppression automatique

Pour planifier la suppression automatique après le démarrage d’une activité en direct, programmez une requête de suivi vers l’endpoint de mise à jour depuis votre backend.

  1. Envoyez une requête /messages/live_activity/start avec un activity_id que vous pourrez réutiliser ultérieurement.
  2. Stockez cet activity_id et l’heure de fin souhaitée dans le planificateur de votre backend.
  3. À l’heure de fin prévue, envoyez une requête /messages/live_activity/update avec end_activity défini sur true.
  4. Configurez le comportement de suppression dans la même requête de mise à jour. Pour plus de détails, consultez l’endpoint /messages/live_activity/update.
  5. 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, vous devrez effectuer les opérations suivantes :

Limite de débit

La limite de débit par défaut de Braze de 250 000 requêtes par heure s’applique à cet endpoint, comme documenté dans Limites de débit de l’API.

Corps de la requête

1
2
3
4
5
6
7
8
9
10
11
12
13
{
  "app_id": "(required, string) App API identifier retrieved from the Developer Console.",
  "activity_id": "(required, string) Define a custom string as your `activity_id`. You will use this ID when you wish 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. Should include `notification.alert.title` and `notification.alert.body`",
  // One of the following:
  "external_user_ids": "(optional, array of strings) see external user identifier, maximum 50",
  "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. Vous utiliserez cet ID lorsque vous souhaiterez 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 pour 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 quand 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 dépend de l’activité de l’utilisateur ou de l’utilisation éventuelle d’un appareil proxy.
  • Si une notification est incluse et que l'utilisateur est actif sur son iPhone lorsque la mise à jour est livrée, l'interface de l'activité en direct mise à jour glissera vers le bas et s'affichera comme une notification push.
  • Si une notification est incluse et que l'utilisateur n'est pas actif sur son iPhone, son écran s'allumera pour afficher l'interface de l'activité en direct mise à jour sur l'écran de verrouillage.
  • L'alerte notification alert ne s'affichera pas comme une notification push standard. De plus, si l'utilisateur dispose d'un appareil proxy, comme une Apple Watch, l'alert y sera affichée.
external_user_ids Facultatif si segment_id ou custom_audience est fourni Tableau de chaînes de caractères Voir ID utilisateur externe. Maximum de 50 ID utilisateur externes.
segment_id Facultatif si external_user_ids ou custom_audience est fourni Chaîne de caractères Voir identifiant de segment.
custom_audience Facultatif si external_user_ids ou segment_id est fourni Objet audience connectée Voir audience connectée.

Sur cet endpoint, transmettez les filtres d’audience connectée dans custom_audience.

Exemple de requête

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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"
        }
    },
    // One of the following required:
    "segment_id": "{YOUR-SEGMENT-API-IDENTIFIER}", // Optional
    "custom_audience": {...}, // Optional
    "external_user_ids": ["user-id1", "user-id2"], // Optional
}'

Réponse

Deux codes de statut sont possibles pour cet endpoint : 201 et 4XX.

Exemple de réponse réussie

Un code de statut 201 est renvoyé si la requête a été correctement formatée et que nous l’avons reçue. Le code de statut 201 pourrait renvoyer le corps de réponse suivant.

1
2
3
{
  "message": "success"
}

Exemple de réponse en erreur

La classe de code de statut 4XX indique une erreur côté client. Consultez l’article Erreurs et réponses de l’API pour plus d’informations sur les erreurs que vous pouvez rencontrer.

Le code de statut 400 pourrait renvoyer le corps de réponse suivant.

1
2
3
{
    "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' "
}
New Stuff!