Ottenere i dati di telemetria dei messaggi di notifica

Questa API fornisce dati di telemetria aggiuntivi sugli stati completati delle notifiche push in uscita. È progettato per monitorare le notifiche push inviate da un hub. L'ID notifica usato da questa API può essere recuperato dall'intestazione Percorso HTTP inclusa nella risposta dell'API REST usata per inviare la notifica.

Questa funzionalità di telemetria per messaggio è disponibile anche per le notifiche pianificate.

Questa API è disponibile solo per hub di notifica del livello Standard.

Richiesta

Metodo URI richiesta Versione HTTP
GET https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/{notification message ID}?api-version=2016-07 HTTP/1.1

Intestazioni della richiesta

Nella seguente tabella vengono descritte le intestazioni di richiesta obbligatorie e facoltative.

Intestazione della richiesta Descrizione
Autorizzazione Token di firma di accesso condiviso generato come specificato in Autenticazione della firma di accesso condiviso con il bus di servizio.
x-ms-version 2016-07 (supportato da 2015-01 o versioni successive)

Testo della richiesta

Nessuno.

Risposta

Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta. Il corpo della risposta viene restituito in caso di esito positivo.

Codici di risposta

Codice Descrizione
200 I dati di telemetria del messaggio sono stati recuperati correttamente. I dati di telemetria possono essere una risposta parziale, a seconda del numero di dispositivi di destinazione del messaggio di notifica inviato e della distanza di avanzamento del messaggio attraverso il sistema per l'elaborazione.
400 Impossibile recuperare i dati di telemetria dei messaggi perché la richiesta non è riuscita.
401 Errore di autorizzazione. La chiave di accesso non è corretta.
403 Richiesta rifiutata perché questa funzionalità non è abilitata per lo SKU. Eseguire l'aggiornamento a Standard.
404 La telemetria non esiste. Questo errore può verificarsi quando l'ID di notifica non è valido.

Per informazioni sui codici di stato, vedere Codici di stato e di errore.

Intestazioni di risposta

Intestazione risposta Descrizione
Tipo di contenuto application/xml; charset=utf-8

Corpo della risposta

Il corpo della risposta è un documento NotificationDetails costituito dagli elementi seguenti:

Elemento Descrizione
NotificationId ID passato alla richiesta che identifica il messaggio di notifica.
Posizione URI per il messaggio
State Indica lo stato del messaggio. Lo stato può essere uno dei valori seguenti:
  • Abbandonato: l'elaborazione dei messaggi è stata abbandonata. Si verifica quando non è stato possibile elaborare il messaggio entro l'intervallo di tempo accettabile. Per impostazione predefinita, sono 30 minuti.
  • Annullata: l'utente ha annullato questo messaggio pianificato.
  • Completato: l'elaborazione dei messaggi è stata completata.
  • Accodato: il messaggio è stato accettato ma l'elaborazione non è ancora iniziata.
  • NoTargetFound: non è stato trovato alcun dispositivo per inviare questo messaggio.
  • Elaborazione: l'elaborazione dei messaggi è stata avviata.
  • Pianificato: il messaggio è in coda e viene inviato all'ora pianificata.
  • Sconosciuto: l'elaborazione dei messaggi è in uno stato sconosciuto.
EnqueueTime Indica l'ora in cui il messaggio è stato accettato.
StartTime Indica quando il servizio hub di notifica ha avviato il lavoro sulla notifica.
EndTime Indica quando il servizio hub di notifica ha completato il lavoro sulla notifica.
NotificationBody Corpo del messaggio di notifica originale.
TargetPlatforms Indica le piattaforme di destinazione della notifica. Può contenere i valori seguenti come stringa delimitata da virgole:
  • windows
  • apple
  • gcm
  • windowsphone
  • adm
  • baidu
  • template
  • windowstemplate
  • appletemplate
  • gcmtemplate
  • windowsphonetemplate
  • admtemplate
  • baidutemplate
ApnsOutcomeCounts Questo elemento è presente per le notifiche inviate a Apple Push Notification Service. Contiene una raccolta di istanze di Risultato.
MpnsOutcomeCounts Questo elemento è presente per le notifiche inviate a Microsoft Push Notification Service. Contiene una raccolta di istanze di Risultato.
WnsOutcomeCounts Questo elemento è presente per le notifiche inviate al servizio di notifica di Windows. Contiene una raccolta di istanze di Risultato.
GcmOutcomeCounts Questo elemento è presente per le notifiche inviate a Google Cloud Messaging. Contiene una raccolta di istanze di Risultato.
AdmOutcomeCounts Questo elemento è presente per le notifiche inviate a Amazon Device Messaging. Contiene una raccolta di istanze di Risultato.
Risultato Una raccolta di queste istanze è costituita dai conteggi precedenti per ogni servizio di notifica della piattaforma. Ogni risultato può essere uno dei conteggi denominati menzionati nella sezione Risultati.
PnsErrorDetailsUri Richiede Api-Version 2016-07 e versioni successive usate per questa API e l'API che invia il messaggio di notifica.

I dettagli dell'errore PNS sono completamente disponibili solo dopo il completamento dell'operazione di invio associata.

Ottiene l'URI in un BLOB contenente errori restituiti da ogni PNS coinvolto. Se non sono stati segnalati errori da un PNS, questo membro non è incluso nella risposta. È possibile usare l'API di archiviazione di Azure per leggere il BLOB. Per altre informazioni, vedere Introduzione all'archiviazione BLOB di Azure con .NET o riferimento all'API REST di Servizi di archiviazione di Azure Possibili errori PNS:
  • Credenziali PNS non valide
  • PNS Non raggiungibile
  • BadChannel
  • ExpiredChannel
  • PnsThrottled
  • InvalidToken
  • WrongToken
  • Dropped
  • WrongChannel

Risultati

Nome Descrizione conteggio
AbandonedNotificationMessages Numero di richieste di invio per il servizio push eliminato a causa di un timeout.
BadChannel La comunicazione al servizio push non è riuscita perché il canale non è valido.
ChannelDisconnected Servizio push disconnesso.
ChannelThrottled Servizio push negato l'accesso a causa della limitazione della limitazione.
Dropped Il servizio push indica che il messaggio è stato eliminato.
ExpiredChannel La comunicazione al servizio push non è riuscita perché il canale è scaduto.
InvalidCredentials Le credenziali usate per l'autenticazione al servizio push non sono riuscite.
InvalidNotificationSize La richiesta push è troppo grande.
NoTargets Conteggio delle richieste a cui non è stato trovato alcun invio.
PnsInterfaceError La comunicazione del contratto di servizio push non è riuscita.
PnsServerError Il servizio push indica che si è verificato un errore sul lato.
PnsUnavailable Il servizio push non è disponibile.
PnsUnreachable Il servizio push non è stato rispondente.
Operazione ignorata Numero di registrazioni duplicate (lo stesso handle PNS trovato, ID di registrazione diverso).
Operazione riuscita È stato inviato correttamente la richiesta a un numero di dispositivi.
Sospensione causata dal servizio Microsoft FullText Servizio push negato l'accesso a causa della limitazione della limitazione.
UnknownError Errore sconosciuto.
WrongToken L'handle PNS non è stato riconosciuto dal PNS come handle valido.

Ecco un esempio di telemetria dall'invio di una notifica 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>

Vedere anche

Inviare una notifica di modello
Inviare una notifica nativa APNS
Inviare una notifica nativa di GCM
Inviare una notifica nativa MPNS
Inviare una notifica nativa WNS