Skip to content

AccuWeather

AccuWeather es una empresa de medios de comunicación que presta servicios de predicción meteorológica en todo el mundo. Con AccuWeather, puedes enriquecer y personalizar tus campañas de marketing, así como automatizar las traducciones mediante el uso de Contenido conectado de Braze.

Esta integración está mantenida por AccuWeather.

Requisitos previos

API de AccuWeather disponibles

A continuación se indican las API de AccuWeather a las que puedes hacer referencia en tus Campaigns y Canvas de Braze.

Ejemplo de Contenido conectado

El siguiente ejemplo muestra una llamada de Contenido conectado que muestra dos tipos diferentes de mensajes basados en las condiciones actuales del código postal de un usuario en EE. UU. Se utilizan los puntos de conexión de la API de ubicaciones y condiciones actuales de AccuWeather.

1
2
3
4
5
6
7
8
9
10
11
{% connected_content http:///dataservice.accuweather.com/locations/v1/postalcodes/{{${country}}}/search?q={{custom_attribute.${Zip Code}}}&apikey={your API key} :save location_info %}

{% connected_content http://dataservice.accuweather.com/currentconditions/v1/{{location_info[0].Key}}?apikey={your API key} :save local_weather %}

{% if {{local_weather[0].WeatherText}} == 'Cloudy' %}
No sunscreen needed :)
{% elsif {{local_weather[0].WeatherText}} == 'Rain' %}
It's raining! Grab an umbrella!
{% else %}
Enjoy the weather!
{% endif %}

Un mensaje push de Contenido conectado que dice "It's raining! Grab an Umbrella!" mostrado en un dispositivo Android

En los siguientes ejemplos se desglosan las dos llamadas de Contenido conectado.

Ejemplo de API de ubicaciones

Dentro de la primera etiqueta connected_content, se realiza una solicitud GET a la API de ubicaciones. Para este ejemplo, puedes aprovechar alternativamente la {{${city}}} del usuario si no dispones de un atributo personalizado de código postal.

1
{% connected_content http://dataservice.accuweather.com/locations/v1/postalcodes/{{${country}}}/search?q={{custom_attribute.${Zip Code}}}&apikey={your API key} :save location_info %}

Este es un ejemplo de lo que AccuWeather devolverá como objeto JSON:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
[
  {
    "Version": 1,
    "Key": "41333_PC",
    "Type": "PostalCode",
    "Rank": 35,
    "LocalizedName": "Seattle",
    "EnglishName": "Seattle",
    "PrimaryPostalCode": "98102",
    "Region": {
      "ID": "NAM",
      "LocalizedName": "North America",
      "EnglishName": "North America"
    },
    "Country": {
      "ID": "US",
      "LocalizedName": "United States",
      "EnglishName": "United States"
    },
    "AdministrativeArea": {
      "ID": "WA",
      "LocalizedName": "Washington",
      "EnglishName": "Washington",
      "Level": 1,
      "LocalizedType": "State",
      "EnglishType": "State",
      "CountryID": "US"
    },
    "TimeZone": {
      "Code": "PDT",
      "Name": "America/Los_Angeles",
      "GmtOffset": -7.0,
      "IsDaylightSaving": true,
      "NextOffsetChange": "2018-11-04T09:00:00Z"
    },
    "GeoPosition": {
      "Latitude": 47.636,
      "Longitude": -122.327,
      "Elevation": {
        "Metric": {
          "Value": 26.0,
          "Unit": "m",
          "UnitType": 5
        },
        "Imperial": {
          "Value": 85.0,
          "Unit": "ft",
          "UnitType": 0
        }
      }
    },
    "IsAlias": false,
    "ParentCity": {
      "Key": "351409",
      "LocalizedName": "Seattle",
      "EnglishName": "Seattle"
    },
    "SupplementalAdminAreas": [
      {
        "Level": 2,
        "LocalizedName": "King",
        "EnglishName": "King"
      }
    ],
    "DataSets": [
      "Alerts",
      "DailyAirQualityForecast",
      "DailyPollenForecast",
      "ForecastConfidence",
      "MinuteCast"
    ]
  }
]

El ID “Key” es una variable útil, ya que se utiliza en la segunda solicitud GET. Este objeto JSON puede almacenarse en una variable local location_info especificando :save location_info después de la URL.

Ejemplo de API de condiciones actuales

Para la segunda etiqueta connected_content, se realiza una solicitud GET a la API de condiciones actuales. La clave de ubicación deberá añadirse a la URL de la solicitud. Este es el ejemplo de etiqueta connected_content:

1
{% connected_content http://dataservice.accuweather.com/currentconditions/v1/{{location_info[0].Key}}?apikey={your API key} :save local_weather %}

Este es el objeto JSON devuelto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[
  {
    "LocalObservationDateTime": "2018-04-10T09:35:00-07:00",
    "EpochTime": 1523378100,
    "WeatherText": "Rain",
    "WeatherIcon": 18,
    "IsDayTime": true,
    "Temperature": {
      "Metric": {
        "Value": 11.0,
        "Unit": "C",
        "UnitType": 17
      },
      "Imperial": {
        "Value": 52.0,
        "Unit": "F",
        "UnitType": 18
      }
    },
    "MobileLink": "http://m.accuweather.com/en/us/seattle-wa/98104/current-weather/41333_pc?lang=en-us",
    "Link": "http://www.accuweather.com/en/us/seattle-wa/98104/current-weather/41333_pc?lang=en-us"
  }
]

Como se ve en la etiqueta connected_content, el objeto JSON se almacena en una variable local local_weather añadiendo :save local_weather después de la URL.

Puedes comprobar cuál debería ser la salida de WeatherText consultando {{local_weather[0].WeatherText}}.

Si la llamada a la API responde con {{local_weather[0].WeatherText}} devolviendo Rain, el usuario recibiría entonces la notificación push.

New Stuff!