Expresiones de etiqueta y enrutamiento

Las expresiones de etiqueta le permiten dirigirse a conjuntos específicos de dispositivos, o más específicamente a registros, al enviar una notificación push a través de Notification Hubs.

Objetivo sobre registros específicos

La única manera de dirigirse a registros específicos es asociarlos con una etiqueta y, a continuación, tomar esa etiqueta como objetivo. Como se describe en Administración de registros, con el fin de recibir notificaciones de inserción, una aplicación tiene que registrar un identificador de dispositivo en un centro de notificaciones. Una vez que se crea un registro en un centro de notificaciones, el back-end de la aplicación puede enviar notificaciones de inserción a este.

El back-end de la aplicación puede elegir a qué registros dirigirse con una notificación específica de las maneras siguientes:

  1. Difusión: todos los registros del centro de notificaciones reciben la notificación.

  2. Etiquetar: todos los registros que contienen la etiqueta especificada reciben la notificación.

  3. Expresión de etiqueta: todos los registros cuyo conjunto de etiquetas coincide con la expresión especificada reciben la notificación.

Nota

Cuando se envía una carga específica de la plataforma (por ejemplo, una notificación específica de la Tienda Windows), los registros de esa plataforma concreta serán los únicos que reciban la notificación. Cuando se envía una notificación de plantilla, solo se toman como objetivo los registros que especifican una plantilla. Para obtener más información, consulte Administración de registros.

Etiquetas

Una etiqueta puede ser cualquier cadena, de hasta 120 caracteres, que contenga caracteres alfanuméricos y los siguientes caracteres no alfanuméricos: "_", "@", "#", ".", ":", "-". En el ejemplo siguiente se muestra una aplicación desde la que puede recibir notificaciones del sistema sobre grupos musicales específicos. En este escenario, una manera sencilla de enrutar notificaciones es etiquetar los registros con etiquetas que representan las distintas bandas, como se muestra en la siguiente imagen.

Tag Expressions

En esta imagen, el mensaje etiquetado Beatles llega solo a la tableta registrada con la etiqueta Beatles.

Para obtener más información acerca de la creación de registros de etiquetas, consulte Administración de registros.

Puede enviar notificaciones a etiquetas mediante los métodos de envío de notificaciones de la clase Microsoft.ServiceBus.Notifications.NotificationHubClient en el SDK. También puede usar Node.js o las API REST de notificaciones push.

Observe los siguientes ejemplos:

await hub.SendWindowsNativeNotificationAsync(wnsToast, "tag");
notificationHubService.wns.sendToastText01('tag', {
            text1: 'Hello World!'
        }, callback);

Las etiquetas no tienen que aprovisionarse previamente y pueden hacer referencia a varios conceptos específicos de la aplicación. Por ejemplo, los usuarios de esta aplicación de ejemplo pueden comentar sobre bandas y desean recibir notificaciones del sistema, no solo de los comentarios sobre sus bandas preferidas, sino también de todos los comentarios de sus amigos, independientemente de la banda sobre la que estén comentando. En la siguiente imagen se muestra un ejemplo de este escenario:

Tag Expressions

En esta imagen, Ana está interesada en recibir actualizaciones sobre los Beatles y Pedro está interesado en las actualizaciones sobre los Wailers. Bob también está interesado en los comentarios de Juan Carlos, y Juan Carlos está interesado en los Wailers. Cuando se envía una notificación sobre el comentario de Juan Carlos acerca de los Beatles, Ana y Pedro la reciben.

Importante

Aunque se pueden codificar varios intereses en etiquetas (por ejemplo, "banda_beatles" o "sigue_a_charlie"), las etiquetas son cadenas simples y no propiedades con valores. Los registros coinciden solo con la presencia o ausencia de una etiqueta específica.

Para obtener un tutorial completo detallado sobre cómo usar etiquetas para enviar a grupos de interés, consulte Noticias de última hora.

Nota

En el ejemplo anterior, debe enviar una notificación única para dos etiquetas (proporcionando una matriz de etiquetas o usando una expresión de etiqueta con OR), en lugar de dos notificaciones. El envío de dos notificaciones a etiquetas individuales da como resultado duplicados de registros que tienen ambas etiquetas, mientras que el uso de expresiones de etiqueta no lo hace.

Uso de etiquetas para usuarios de destino

Otra forma de usar etiquetas es identificar todos los dispositivos de un usuario concreto. Los registros se pueden etiquetar con una etiqueta que contenga un identificador de usuario, como se muestra en la siguiente imagen:

Tag Expressions

En esta imagen, el mensaje etiquetado uid:Alice llega a todos los registros etiquetados como uid:Alice; por lo tanto, todos los dispositivos de Alice.

Expresiones de etiqueta

Hay casos en que una notificación tiene como destino un conjunto de registros identificado no por una sola etiqueta, sino por una expresión booleana en las etiquetas.

Tome una aplicación de deportes que envía un recordatorio a todas las personas de Boston sobre un partido entre los Red Sox y los Cardinals. Si la aplicación cliente registra etiquetas sobre intereses en equipos y ubicaciones, la notificación deberá dirigirse a todas las personas de Boston interesadas en los Red Sox o en los Cardinals. Esta condición se puede expresar mediante la siguiente expresión booleana:

(follows_RedSox || follows_Cardinals) && location_Boston

Tag Expressions

Las expresiones de etiqueta pueden contener todos los operadores booleanos, como AND (), OR (&&||) y NOT (!). También pueden contener paréntesis. Las expresiones de etiqueta se limita a 20 etiquetas si contienen solamente OR; de lo contrario, se limitan a 6 etiquetas.

Puede enviar notificaciones a expresiones de etiqueta mediante los métodos de envío de notificaciones de la clase Microsoft.ServiceBus.Notifications.NotificationHubClient en el SDK. También puede usar Node.js o las API REST de notificaciones push. Observe los siguientes ejemplos:

await hub.SendWindowsNativeNotificationAsync(wnsToast, "(tagA && !tagB)");
notificationHubService.wns.sendToastText01('(tagA && !tagB)', {
            text1: 'Hello World!'
        }, callback);

Vea también

Otros recursos

Referencias de API
tutorial de noticias de última hora
Tutorial envío de notificaciones a usuarios