Compartilhar via


Obter telemetria de mensagem de notificação

Essa API fornece telemetria adicional nos estados concluídos das notificações por push de saída. Ele foi projetado para ajudar a monitorar as notificações por push enviadas de um hub. A ID de notificação que essa API usa pode ser recuperada do cabeçalho local HTTP incluído na resposta da API REST usada para enviar a notificação.

Esse recurso de Telemetria por Mensagem também está disponível para notificações agendadas.

Essa API só está disponível para hubs de notificação da camada Standard.

Solicitação

Método URI da solicitação Versão HTTP
GET https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/{notification message ID}?api-version=2016-07 HTTP/1.1

Cabeçalhos da solicitação

A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais.

Cabeçalho da solicitação Descrição
Autorização Token SAS gerado conforme especificado na Autenticação de Assinatura de Acesso Compartilhado com o Barramento de Serviço.
x-ms-version 2016-07 (com suporte em 2015-01 ou posterior)

Corpo da solicitação

Nenhum.

Resposta

A resposta inclui um código de status HTTP e um conjunto de cabeçalhos de resposta. O corpo da resposta é retornado com êxito.

Códigos de resposta

Código Descrição
200 A telemetria da mensagem foi recuperada com êxito. Os dados de telemetria podem ser uma resposta parcial, dependendo do número de dispositivos direcionados pela mensagem de notificação que foi enviada e até que ponto a mensagem progrediu em nosso sistema para processamento.
400 Não foi possível recuperar a telemetria da mensagem porque a solicitação foi malformada.
401 Falha de autorização. A chave de acesso estava incorreta.
403 Solicitação rejeitada porque esse recurso não está habilitado para sua SKU. Atualize para Standard.
404 A telemetria não existe. Esse erro pode ocorrer quando a ID de notificação é inválida.

Para obter informações sobre códigos de status, consulte Códigos de status e de erro.

Cabeçalhos de resposta

Cabeçalho de resposta Descrição
Content-type application/xml; charset=utf-8

Corpo da resposta

O corpo da resposta é um documento NotificationDetails que consiste nos seguintes elementos:

Elemento Descrição
NotificationId A ID passada para a solicitação que identifica a mensagem de notificação.
Local URI da mensagem
Estado Indica o progresso da mensagem. O estado pode ser um dos seguintes valores:
  • Abandonado: o processamento de mensagens foi abandonado. Isso acontece quando a mensagem não pôde ser processada dentro da janela de tempo aceitável. Por padrão, são 30 minutos.
  • Cancelado: o usuário cancelou esta mensagem agendada.
  • Concluído: o processamento de mensagens foi concluído.
  • Enfileirado: a mensagem foi aceita, mas o processamento ainda não foi iniciado.
  • NoTargetFound: nenhum dispositivo foi encontrado para enviar esta mensagem.
  • Processamento: o processamento de mensagens foi iniciado.
  • Agendado: a mensagem está na fila e é enviada no horário agendado.
  • Desconhecido: o processamento de mensagens está em um estado desconhecido.
EnqueueTime Indica a hora em que a mensagem foi aceita.
StartTime Indica quando o serviço do hub de notificação começou a funcionar na notificação.
EndTime Indica quando o serviço do hub de notificação concluiu o trabalho na notificação.
NotificationBody Corpo da mensagem de notificação original.
TargetPlatforms Indica quais plataformas os destinos de notificação. Pode conter os seguintes valores como uma cadeia de caracteres delimitada por vírgulas:
  • windows
  • apple
  • gcm
  • windowsphone
  • adm
  • baidu
  • template
  • windowstemplate
  • appletemplate
  • gcmtemplate
  • windowsphonetemplate
  • admtemplate
  • baidutemplate
ApnsOutcomeCounts Esse elemento está presente para notificações enviadas ao Apple Push Notification Service. Contém uma coleção de instâncias de Resultado.
MpnsOutcomeCounts Esse elemento está presente para notificações enviadas ao Serviço de Notificação por Push da Microsoft. Contém uma coleção de instâncias de Resultado.
WnsOutcomeCounts Esse elemento está presente para notificações enviadas ao Serviço de Notificação do Windows. Contém uma coleção de instâncias de Resultado.
GcmOutcomeCounts Esse elemento está presente para notificações enviadas ao Google Cloud Messaging. Contém uma coleção de instâncias de Resultado.
AdmOutcomeCounts Esse elemento está presente para notificações enviadas ao Amazon Device Messaging. Contém uma coleção de instâncias de Resultado.
Resultado Uma coleção dessas instâncias compõe as contagens acima para cada serviço de notificação de plataforma. Cada resultado pode ser uma das contagens nomeadas mencionadas na seção Resultados.
PnsErrorDetailsUri Requer Api-Version 2016-07 e superior usado para essa API e a API que envia a mensagem de notificação.

Os detalhes do erro PNS só estarão totalmente disponíveis após a conclusão da operação de envio associada.

Obtém o URI para um blob que contém erros retornados por cada PNS envolvido. Se nenhum erro tiver sido relatado por um PNS, esse membro não será incluído na resposta. Você pode usar a API de Armazenamento do Azure para ler o blob. Para obter mais informações, consulte Introdução ao Armazenamento de Blobs do Azure usando .NET ou Referência da API REST dos Serviços de Armazenamento do Azure Possíveis erros de PNS incluem:
  • Credenciais PNS inválidas
  • PNS inacessível
  • BadChannel
  • ExpiredChannel
  • PnsThrottled
  • InvalidToken
  • WrongToken
  • Dropped
  • WrongChannel

Resultados

Name Descrição da contagem
AbandonedNotificationMessages Contagem de solicitações de envio para o serviço de push que foram descartadas devido a um tempo limite.
BadChannel Falha na comunicação com o serviço de push porque o canal era inválido.
ChannelDisconnected Serviço de push desconectado.
ChannelThrottled O serviço de push negou acesso devido à limitação.
Dropped O serviço de push indica que a mensagem foi descartada.
ExpiredChannel Falha na comunicação com o serviço de push porque o canal expirou.
InvalidCredentials As credenciais usadas para autenticar no serviço de push falharam.
InvalidNotificationSize A solicitação por push é muito grande.
NoTargets Contagem de solicitações que não encontraram nada para enviar.
PnsInterfaceError Falha na comunicação do contrato de serviço push.
PnsServerError O serviço de push indicou que ocorreu um erro no lado deles.
PnsUnavailable O serviço de push não está disponível.
PnsUnreachable O serviço de push não estava respondendo.
Ignorado Contagem de registros duplicados (mesmo identificador PNS encontrado, ID de registro diferente).
Êxito A solicitação foi enviada com êxito para alguns dispositivos.
Acelerado O serviço de push negou acesso devido à limitação.
UnknownError Ocorreu um erro desconhecido.
WrongToken O identificador PNS não foi reconhecido pelo PNS como um identificador válido.

Aqui está um exemplo de telemetria do envio de uma notificação para o 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 Também

Enviar uma notificação de modelo
Enviar uma notificação nativa de APNS
Enviar uma notificação nativa do GCM
Enviar uma notificação nativa do MPNS
Enviar uma notificação nativa do WNS