# API de Live Activities de iOS

> Documentación de Apple:
> 
> * [Acerca de las Live Activities](https://developer.apple.com/design/human-interface-guidelines/live-activities)
> * [Actualizar y finalizar Live Activities con notificaciones push de ActivityKit](https://developer.apple.com/documentation/activitykit/updating-and-ending-your-live-activity-with-activitykit-push-notifications)



## startLiveActivity



`POST` `https://api.pushwoosh.com/json/1.3/startLiveActivity`

Permite crear Live Activities de iOS.

### Cuerpo de la solicitud

| Parámetro     | Tipo   | Requerido/Opcional | Descripción                                                                 |
|---------------|--------|-------------------|-----------------------------------------------------------------------------|
| application   | String | Requerido           | [Código de aplicación de Pushwoosh](/es/developer/api-reference/api-identifiers/#application-code)                                             |
| auth          | String | Requerido           | [Token de acceso a la API](/es/developer/api-reference/api-identifiers/#api-access-token) desde el Panel de Control de Pushwoosh.                          |
| notifications | Array  | Requerido           | Array JSON de parámetros de mensaje. Consulte los detalles en la tabla de Notificaciones a continuación. |

#### Notificaciones
Parámetros utilizados en el array `notifications`:

| Parámetro        | Tipo             | Requerido/Opcional | Descripción                                                                 |
|------------------|------------------|-------------------|-----------------------------------------------------------------------------|
| content       | String | Requerido          | Contenido de respaldo para dispositivos con versiones de iOS inferiores a la 16.1 que no admiten Live Activity. En iOS 16.1+ (con soporte para Live Activity), el contenido se obtiene del campo `live_activity`. |
| title         | String | Opcional          | El título del mensaje de notificación.                                                                                                            |
| live_activity    | Object           | Requerido           | Datos de Live Activity para crear una Live Activity en iOS.                          |
| live_activity.content-state    | Object           | Requerido           | Contenido para la notificación de Live Activity.                                 |
| live_activity.attributes-type  | String           | Requerido           | El tipo de atributos utilizados en la Live Activity.                           |
| live_activity.attributes       | Object           | Requerido           | Atributos para la Live Activity.                                           |
| live_activity_id | String           | Requerido           | Un identificador único para la Live Activity. Se utiliza para apuntar a esta actividad al llamar a `updateLiveActivity`. Debe ser único por sesión de actividad. |
| filter | String | Opcional | El nombre de un filtro (segmento) de Pushwoosh. Consulte [Nombre de Segmento / Filtro](/es/developer/api-reference/api-identifiers/#segment--filter-name). La Live Activity se iniciará en todos los dispositivos que coincidan con este filtro. |
| devices | Array de Strings | Opcional | Una lista de [tokens de dispositivo](/es/developer/api-reference/api-identifiers/#push-token). La Live Activity se iniciará solo en los dispositivos especificados. |



### Ejemplo de solicitud

<Tabs>
<TabItem label="Con filtro">
```json
{
  "request": {
    "application": "XXXXX-XXXXX",
    "auth": "SECRET_API_TOKEN",
    "notifications": [
      {
        "content": "Your order is being prepared",
        "title": "Food Delivery",
        "live_activity": {
          "event": "start",
          "title": "Order status",
          "content-state": {
            "status": "Third",
            "estimatedTime": "37 min",
            "emoji": "👨‍🍳"
          },
          "attributes-type": "FoodDeliveryAttributes",
          "attributes": {}
        },
        "live_activity_id": "FIRST_LIVE_ACTIVITY",
        "filter": "FILTER_NAME_1"
      }
    ]
  }
}
```
</TabItem>
<TabItem label="Con dispositivos">
```json
{
  "request": {
    "application": "XXXXX-XXXXX",
    "auth": "SECRET_API_TOKEN",
    "notifications": [
      {
        "content": "Your order is being prepared",
        "title": "Food Delivery",
        "live_activity": {
          "event": "start",
          "title": "Order status",
          "content-state": {
            "status": "Third",
            "estimatedTime": "37 min",
            "emoji": "👨‍🍳"
          },
          "attributes-type": "FoodDeliveryAttributes",
          "attributes": {}
        },
        "live_activity_id": "SECOND_LIVE_ACTIVITY",
        "devices": ["first_third", "second_device"]
      }
    ]
  }
}
```
</TabItem>
</Tabs>

### Ejemplo de respuesta

```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "Messages": [
      "XXXXX-XXXXXXXX-XXXXXXXX"
    ]
  }
}
```
> **Nota:**
> 
> Lea [este artículo](/es/developer/pushwoosh-sdk/ios-sdk/ios-live-activities) para obtener más información sobre cómo trabajar con Live Activities utilizando el SDK de iOS de Pushwoosh.


## updateLiveActivity


`POST` `https://api.pushwoosh.com/json/1.3/updateLiveActivity`

Permite actualizar y finalizar Live Activities de iOS

### Cuerpo de la solicitud

| Parámetro      | Tipo   | Requerido/Opcional | Descripción                                                            |
|----------------|--------|-------------------|------------------------------------------------------------------------|
| auth           | String | Requerido           | [Token de acceso a la API](/es/developer/api-reference/api-identifiers/#api-access-token) desde el Panel de Control de Pushwoosh.                      |
| application    | String | Requerido           | [Código de aplicación de Pushwoosh](/es/developer/api-reference/api-identifiers/#application-code)                                       |
| notifications  | Array  | Requerido           | Array JSON de parámetros de mensaje. Consulte los detalles en la tabla de Notificaciones a continuación. |

#### Notificaciones

Parámetros utilizados en el array `notifications`:

| Parámetro        | Tipo    | Requerido/Opcional | Descripción                                                                 |
|------------------|---------|-------------------|-----------------------------------------------------------------------------|
| live_activity    | Object  | Requerido           | Datos de Live Activity para actualizar una Live Activity en iOS.                          |
| live_activity.event            | String  | Requerido           | Especifica el tipo de evento. Use `"update"` para actualizar la Live Activity o `"end"` para cerrarla. |
| live_activity.content-state    | Object  | Requerido           | Objeto con pares clave-valor utilizado para pasar datos a la Live Activity para actualizar su contenido. |
| live_activity.dismissal-date   | Integer | Opcional           | El tiempo (en segundos) en el que la Live Activity debe finalizar.                    |
| live_activity_id | String  | Requerido           | El identificador único de la Live Activity a actualizar. Debe coincidir con el `live_activity_id` utilizado en **startLiveActivity**. La actualización se entregará a todos los dispositivos en los que se inició esta actividad.                |
| live_activity.relevance-score  | Integer | Opcional           | Indica al sistema iOS qué Live Activity tiene mayor prioridad que otras. Acepta valores de 1 al infinito (se recomiendan valores hasta 100). |
| live_activity.stale-date | Integer | Opcional | El tiempo (en segundos) que representa la fecha en la que una Live Activity se vuelve obsoleta o caducada.|


### Ejemplo de solicitud

```json

{
  "request": {
    "application": "XXXXX-XXXXX",
    "auth": "SECRET_API_TOKEN",
    "notifications": [
      {
        "live_activity": {
          "event": "update",
          "title": "Live Activity Update",
          "content-state": {
            "status": "second 66",
            "estimatedTime": "66 min",
            "emoji": "👨‍"
          },
          "relevance-score": 60
        },
        "live_activity_id": "FIRST_LIVE_ACTIVITY"
      }
    ]
  }
}
```

### Ejemplo de respuesta

```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "Messages": [
      "XXXXX-XXXXXXXX-XXXXXXXX"
    ]
  }
}
```

> [Lea este artículo](/es/developer/pushwoosh-sdk/ios-sdk/ios-live-activities/) para obtener más información sobre cómo trabajar con Live Activities utilizando el SDK de iOS de Pushwoosh.


## Múltiples actividades por dispositivo

Puede iniciar múltiples Live Activities en el mismo dispositivo llamando a `startLiveActivity` varias veces con diferentes valores de `live_activity_id`.

Por ejemplo, si inicia dos actividades: `FIRST_LIVE_ACTIVITY` con `filter: FILTER_NAME_1` y `SECOND_LIVE_ACTIVITY` con `filter: FILTER_NAME_2`, un dispositivo que coincida con ambos filtros tendrá ambas actividades ejecutándose simultáneamente.

Para actualizar una de ellas, pase su `live_activity_id` a `updateLiveActivity`. La actualización se entrega a todos los dispositivos donde se creó esa actividad. La otra actividad no se ve afectada.

El parámetro `relevance-score` controla la prioridad de visualización cuando hay múltiples Live Activities activas en el mismo dispositivo. Si el espacio en pantalla es limitado o las actividades están agrupadas, la actividad con un valor más alto se muestra con mayor prioridad.