Compartir a través de


Obtención de telemetría de mensajes de notificación

Esta API proporciona telemetría adicional en los estados terminados de las notificaciones push salientes. Está diseñado para ayudar a supervisar las notificaciones push enviadas desde un centro. El identificador de notificación que usa esta API se puede recuperar del encabezado ubicación HTTP incluido en la respuesta de la API REST que se usa para enviar la notificación.

Esta característica de telemetría por mensaje también está disponible para las notificaciones programadas.

Esta API solo está disponible para centros de notificaciones de nivel Estándar.

Solicitud

Método URI de solicitud Versión de HTTP
GET https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/{notification message ID}?api-version=2016-07 HTTP/1.1

Encabezados de solicitud

En la tabla siguiente se describen los encabezados de solicitud requeridos y opcionales.

Encabezado de solicitud Descripción
Authorization Token de SAS generado tal y como se especifica en Autenticación de firma de acceso compartido con Service Bus.
x-ms-version 2016-07 (compatible con 2015-01 o posterior)

Cuerpo de la solicitud

Ninguno.

Response

La respuesta incluye un código de estado HTTP y un conjunto de encabezados de respuesta. El cuerpo de la respuesta se devuelve correctamente.

Códigos de respuesta

Código Descripción
200 La telemetría del mensaje se recuperó correctamente. Los datos de telemetría pueden ser una respuesta parcial, según el número de dispositivos de destino del mensaje de notificación que se envió y hasta dónde ha progresado el mensaje a través de nuestro sistema para su procesamiento.
400 No se pudo recuperar la telemetría del mensaje porque la solicitud tenía un formato incorrecto.
401 Error de autorización. La clave de acceso era incorrecta.
403 Solicitud rechazada porque esta característica no está habilitada para la SKU. Actualice a Estándar.
404 La telemetría no existe. Este error puede producirse cuando el identificador de notificación no es válido.

Para obtener información sobre los códigos de estado, vea Códigos de estado y error.

Encabezados de respuesta

Encabezado de respuesta Descripción
Content-type application/xml; charset=utf-8

Response body

El cuerpo de la respuesta es un documento NotificationDetails que consta de los siguientes elementos:

Elemento Descripción
NotificationId Identificador pasado a la solicitud que identifica el mensaje de notificación.
Location URI del mensaje
State Indica el progreso del mensaje. El estado puede ser uno de los siguientes valores:
  • Abandonado: se ha abandonado el procesamiento de mensajes. Se produce cuando el mensaje no se pudo procesar dentro del período de tiempo aceptable. De forma predeterminada, es de 30 minutos.
  • Cancelado: el usuario canceló este mensaje programado.
  • Completado: se ha completado el procesamiento de mensajes.
  • Puesta en cola: se ha aceptado el mensaje, pero aún no se ha iniciado el procesamiento.
  • NoTargetFound: no se encontró ningún dispositivo para enviar este mensaje.
  • Procesamiento: se ha iniciado el procesamiento de mensajes.
  • Programado: el mensaje está en cola y se envía a la hora programada.
  • Desconocido: el procesamiento de mensajes está en un estado desconocido.
EnqueueTime Indica la hora en que se aceptó el mensaje.
StartTime Indica cuándo el servicio del centro de notificaciones inició el trabajo en la notificación.
EndTime Indica cuándo el servicio del centro de notificaciones ha terminado de funcionar en la notificación.
NotificationBody Cuerpo del mensaje de notificación original.
TargetPlatforms Indica qué plataformas tiene como destino la notificación. Puede contener los valores siguientes como una cadena delimitada por comas:
  • windows
  • apple
  • gcm
  • windowsphone
  • adm
  • baidu
  • template
  • windowstemplate
  • appletemplate
  • gcmtemplate
  • windowsphonetemplate
  • admtemplate
  • baidutemplate
ApnsOutcomeCounts Este elemento está presente para las notificaciones enviadas al servicio de notificaciones push de Apple. Contiene una colección de instancias de Outcome.
MpnsOutcomeCounts Este elemento está presente para las notificaciones enviadas al servicio de notificaciones push de Microsoft. Contiene una colección de instancias de Outcome.
WnsOutcomeCounts Este elemento está presente para las notificaciones enviadas al servicio de notificaciones de Windows. Contiene una colección de instancias de Outcome.
GcmOutcomeCounts Este elemento está presente para las notificaciones enviadas a Google Cloud Messaging. Contiene una colección de instancias de Outcome.
AdmOutcomeCounts Este elemento está presente para las notificaciones enviadas a Amazon Device Messaging. Contiene una colección de instancias de Outcome.
Resultado Una colección de estas instancias compone los recuentos anteriores para cada servicio de notificación de plataforma. Cada resultado puede ser uno de los recuentos con nombre mencionados en la sección Resultados.
PnsErrorDetailsUri Requiere Api-Version 2016-07 y versiones posteriores usadas para esta API y la API que envía el mensaje de notificación.

Los detalles del error de PNS solo están totalmente disponibles una vez completada la operación de envío asociada.

Obtiene el URI de un blob que contiene errores devueltos por cada PNS implicado. Si no se ha notificado ningún error por parte de un PNS, este miembro no se incluye en la respuesta. Puede usar la API de Azure Storage para leer el blob. Para más información, consulte Introducción a Azure Blob Storage mediante .NET o referencia de la API REST de servicios de Azure Storage : posibles errores PNS:
  • Credenciales de PNS no válidas
  • PNS inaccesible
  • BadChannel
  • ExpiredChannel
  • PnsThrottled
  • InvalidToken
  • WrongToken
  • Dropped
  • WrongChannel

Resultados

Nombre Descripción del recuento
AbandonedNotificationMessages Recuento de solicitudes de envío al servicio de inserción que se quitaron debido a un tiempo de espera.
BadChannel Error en la comunicación con el servicio de inserción porque el canal no era válido.
ChannelDisconnected Servicio de inserción desconectado.
ChannelThrottled Se denegó el acceso del servicio de inserción debido a la limitación.
Dropped El servicio push indica que se quitó el mensaje.
ExpiredChannel Error en la comunicación con el servicio de inserción porque el canal expiró.
InvalidCredentials Error en las credenciales usadas para autenticarse en el servicio de inserción.
InvalidNotificationSize La solicitud de inserción es demasiado grande.
NoTargets Recuento de solicitudes a las que no se ha encontrado nada que enviar.
PnsInterfaceError Error de comunicación del contrato de servicio de inserción.
PnsServerError El servicio de inserción indicó que se produjo un error en su lado.
PnsUnavailable El servicio de inserción no está disponible.
PnsUnreachable El servicio de inserción no responde.
Omitido Recuento de registros duplicados (se encontró el mismo identificador de PNS, identificador de registro diferente).
Correcto Envió correctamente la solicitud a algún número de dispositivos.
Limitado Se denegó el acceso del servicio de inserción debido a la limitación.
UnknownError Se produjo un error desconocido.
WrongToken El identificador PNS no lo reconoció el PNS como identificador válido.

Este es un ejemplo de telemetría desde el envío de una notificación a WNS:

<NotificationDetails xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <NotificationId>{Your message id}</NotificationId>
  <Location>sb://{Your namespace}.servicebus.windows.net/{your hub name}/messages/{your message id}?api-version=2015-04</Location>
  <State>Completed</State>
  <EnqueueTime>2015-11-02T21:19:43Z</EnqueueTime>
  <StartTime>2015-11-02T21:19:43.9926996Z</StartTime>
  <EndTime>2015-11-02T21:19:43.9926996Z</EndTime>
  <NotificationBody>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;toast&gt;&lt;visual&gt;&lt;binding template="ToastText01"&gt;&lt;text id="1"&gt;Hello from a .NET App!&lt;/text&gt;&lt;/binding&gt;&lt;/visual&gt;&lt;/toast&gt;</NotificationBody>
  <TargetPlatforms>windows</TargetPlatforms>
  <WnsOutcomeCounts>
    <Outcome>
      <Name>Success</Name>
      <Count>3</Count>
    </Outcome>
    <Outcome>
      <Name>WrongToken</Name>
      <Count>1</Count>
    </Outcome>
  </WnsOutcomeCounts>
  <PnsErrorDetailsUri>{Blob uri}</PnsErrorDetailsUri>
</NotificationDetails>

Consulte también

Envío de una notificación de plantilla
Envío de una notificación nativa de APNS
Envío de una notificación nativa de GCM
Envío de una notificación nativa de MPNS
Envío de una notificación nativa de WNS