Obtenir la télémétrie des messages de notification
Cette API fournit des données de télémétrie supplémentaires sur les états terminés des notifications Push sortantes. Il est conçu pour aider à surveiller les notifications Push envoyées à partir d’un hub. L’ID de notification utilisé par cette API peut être récupéré à partir de l’en-tête Emplacement HTTP inclus dans la réponse de l’API REST utilisée pour envoyer la notification.
Cette fonctionnalité de télémétrie par message est également disponible pour les notifications planifiées.
Cette API est disponible uniquement pour les hubs de notification de niveau Standard.
Requête
Méthode | URI de demande | Version HTTP |
---|---|---|
GET | https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/{notification message ID}?api-version=2016-07 |
HTTP/1.1 |
En-têtes de requête
Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs.
En-tête de requête | Description |
---|---|
Autorisation | Jeton SAS généré comme spécifié dans Authentification par signature d’accès partagé avec Service Bus. |
x-ms-version | 2016-07 (pris en charge par 2015-01 ou ultérieur) |
Corps de la demande
Aucun.
response
La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse. Le corps de la réponse est retourné en cas de réussite.
Codes de réponse
Code | Description |
---|---|
200 | La télémétrie du message a été récupérée avec succès. Les données de télémétrie peuvent être une réponse partielle, en fonction du nombre d’appareils ciblés par le message de notification envoyé et de la progression du message dans notre système de traitement. |
400 | La télémétrie des messages n’a pas pu être récupérée, car la demande était incorrecte. |
401 | Échec de l'autorisation. La clé d’accès était incorrecte. |
403 | Demande rejetée, car cette fonctionnalité n’est pas activée pour votre référence SKU. Mettez à niveau vers standard. |
404 | La télémétrie n’existe pas. Cette erreur peut se produire lorsque l’ID de notification n’est pas valide. |
Pour plus d’informations sur les codes status, consultez Codes d’état et d’erreur.
En-têtes de réponse
En-tête de réponse | Description |
---|---|
Content-Type | application/xml; charset=utf-8 |
Response body
Le corps de la réponse est un document NotificationDetails constitué des éléments suivants :
Élément | Description |
---|---|
NotificationId | ID passé à la demande qui identifie le message de notification. |
Emplacement | URI du message |
State | Indique la progression du message. State peut être l’une des valeurs suivantes :
|
EnqueueTime | Indique l’heure à laquelle le message a été accepté. |
StartTime | Indique quand le service hub de notification a commencé à travailler sur la notification. |
EndTime | Indique quand le service hub de notification a terminé le travail sur la notification. |
NotificationBody | Corps du message de notification d’origine. |
TargetPlatforms | Indique les plateformes cibles de notification. Peut contenir les valeurs suivantes sous forme de chaîne délimitée par des virgules :
|
ApnsOutcomeCounts | Cet élément est présent pour les notifications envoyées à Apple Push Notification Service. Contient une collection d’instances Outcome. |
MpnsOutcomeCounts | Cet élément est présent pour les notifications envoyées à Microsoft Push Notification Service. Contient une collection d’instances Outcome. |
WnsOutcomeCounts | Cet élément est présent pour les notifications envoyées au service de notification Windows. Contient une collection d’instances Outcome. |
GcmOutcomeCounts | Cet élément est présent pour les notifications envoyées à Google Cloud Messaging. Contient une collection d’instances Outcome. |
AdmOutcomeCounts | Cet élément est présent pour les notifications envoyées à Amazon Device Messaging. Contient une collection d’instances Outcome. |
Résultat | Une collection de ces instances constitue le nombre ci-dessus pour chaque service de notification de plateforme. Chaque résultat peut être l’un des nombres nommés mentionnés dans la section Résultats . |
PnsErrorDetailsUri | Nécessite Api-Version 2016-07 et versions ultérieures utilisées pour cette API et l’API qui envoie le message de notification. Les détails de l’erreur PNS ne sont entièrement disponibles qu’une fois l’opération d’envoi associée terminée. Obtient l’URI d’un objet blob contenant des erreurs retournées par chaque PNS impliqué. Si aucune erreur n’a été signalée par un PNS, ce membre n’est pas inclus dans la réponse. Vous pouvez utiliser l’API Stockage Azure pour lire l’objet blob. Pour plus d’informations, consultez Prise en main du stockage Blob Azure à l’aide de .NET ou de l’API REST Azure Storage Services :
|
Résultats
Nom | Description du nombre |
---|---|
AbandonedNotificationMessages | Nombre de demandes envoyées au service Push qui ont été supprimées en raison d’un délai d’expiration. |
BadChannel | La communication avec le service Push a échoué, car le canal n’était pas valide. |
ChannelDisconnected | Service push déconnecté. |
ChannelThrottled | Accès refusé au service push en raison d’une limitation. |
Supprimé | Le service Push indique que le message a été supprimé. |
ExpiredChannel | La communication avec le service Push a échoué, car le canal a expiré. |
InvalidCredentials | Les informations d’identification utilisées pour l’authentification auprès du service push ont échoué. |
InvalidNotificationSize | La requête Push est trop volumineuse. |
NoTargets | Nombre de requêtes qui n’ont rien trouvé à envoyer. |
PnsInterfaceError | Échec de la communication du contrat de service push. |
PnsServerError | Le service Push a indiqué qu’une erreur s’est produite de leur côté. |
PnsUnavailable | Le service Push n’est pas disponible. |
PnsUnreachable | Le service Push ne répondait pas. |
Ignoré | Nombre d’inscriptions en double (même handle PNS trouvé, ID d’inscription différent). |
Succès | Envoi de la demande à un certain nombre d’appareils. |
Throttled | Accès refusé au service push en raison d’une limitation. |
UnknownError | Une erreur inconnue s’est produite. |
WrongToken | Le handle PNS n’était pas reconnu par le serveur PNS comme un handle valide. |
Voici un exemple de télémétrie à partir de l’envoi d’une notification à 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><?xml version="1.0" encoding="utf-16"?><toast><visual><binding template="ToastText01"><text id="1">Hello from a .NET App!</text></binding></visual></toast></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>
Voir aussi
Envoyer une notification de modèle
Envoyer une notification native APNS
Envoyer une notification native GCM
Envoyer une notification native MPNS
Envoyer une notification native WNS