Partilhar via


Solução de problemas de notificações por push do WNS

Este tópico discute as etapas iniciais de solução de problemas que deve seguir ao encontrar problemas com notificações de bloco, toast e emblema, incluindo os vários métodos de notificação: notificações locais, push, periódicas e agendadas.

Solução de problemas de erros específicos

Esta seção aborda alguns erros comuns que você pode encontrar ao trabalhar com notificações push.

  • Verifique os registos de eventos
  • A notificação por push recebe uma resposta "200 OK", mas não é exibida
  • A notificação por push retorna um código diferente de "200 OK"
  • Erros ao tentar criar um canal de notificação por push

Verifique os registos de eventos

Se as notificações por push de tile ou toast não estiverem a ser exibidas como esperado, consulte os logs de eventos.

  • Se a notificação for recebida, mas não exibida: Inicie o Visualizador de Eventos e examine o log Microsoft-Windows-TWinUI/Operational em Aplicações e Serviços\Microsoft\Windows\Apps.
  • Se a notificação não for recebida: inicie o Visualizador de Eventos e examine o log operacional em Aplicativos e Serviços\Microsoft\Windows\PushNotifications-Platform.

A notificação por push recebe uma resposta "200 OK", mas não é exibida

Se o WNS (Serviços de Notificação por Push do Windows) retornar uma resposta "200 OK", ele entregará a notificação ao cliente se o cliente estiver online. Se você verificou que o cliente está online, mas não está exibindo a notificação, siga estas etapas:

  • Causa: erros XML no conteúdo da notificação.

    Fix: Verifique a sintaxe XML básica e certifique-se de que o XML está completo e correto. Alguns pontos comuns de falha no conteúdo XML incluem o seguinte:

    • Case sensitivity. Nomes de tags, nomes de atributos e valores de atributos são sensíveis a maiúsculas e minúsculas. Certifique-se de que o XML tem o invólucro correto.
    • Um elemento de vinculação deve ser fornecido para cada formato de tile suportado. Você deve fornecer um elemento de vinculação de para cada um dos tamanhos de tile suportados em cada notificação enviada.
    • As cadeias de texto não devem conter caracteres XML reservados. Por exemplo, não é possível colocar em itálico cadeias de texto de tile ou de notificação ao incluir as etiquetas <i> e </i>. Se você pretende mostrar os caracteres literais "<i>", eles devem ser devidamente escapados. Para obter mais informações sobre caracteres de escape em XML, consulte Entidades de Caracteres XML eXAML.
    • Os valores fornecidos para os atributos lang devem estar em conformidade com a especificação ITEF BCP 47 .
    • As cadeias de caracteres XML enviadas por meio de notificações por push devem usar a codificação UTF-8.
    • Se pretender incluir um elemento imagem no seu payload XML com um atributo src não vazio, assegure-se de incluir uma referência a uma imagem válida ou a notificação será descartada.
  • Causa: uso inadequado de parâmetros da API de notificação por push

    Fix: Consulte a documentação da API no namespace Windows.Networking.PushNotifications para obter detalhes.

  • Causa: o tipo de cabeçalho não corresponde ao conteúdo da notificação. Se o cabeçalho X-WNS-Type não for definido para um valor — tile, badge ou toast — que corresponda ao modelo de notificação especificado no corpo da mensagem, a notificação não será exibida. Essa incompatibilidade causará um erro no cliente e a notificação será descartada.

    Corrigir: Consulte os cabeçalhos de solicitação e resposta do serviço de notificação por push para garantir que o seu servidor de aplicativos esteja a usar o valor correto para o cabeçalho X-WNS-Type.

  • Causa: O valor do tempo de vida (TTL), definido no cabeçalho X-WNS-TTL, é demasiado pequeno.

    Correção: Forneça um valor TTL maior, ciente de que o valor é dado em segundos.

Se você ainda não vir sua notificação exibida depois de abordar os itens nas etapas anteriores, consulte as etapas de solução de problemas para notificações locais na seção Notificação de bloco local não é exibida deste tópico para obter mais sugestões.

A notificação por push retorna um código diferente de "200 OK"

Se o WNS não retornar "200 OK", sua notificação não será entregue ao cliente. Se o código de retorno estiver no intervalo dos 400, você, como desenvolvedor, deve ser capaz de corrigir o problema.

Note

Para erros não listados especificamente aqui, consulte Códigos de erro COM (WPN, MBN, P2P, Bluetooth).

  • A solicitação de notificação retorna "400 Bad Request"
  • A solicitação de notificação retorna "401 Não autorizado"
  • A solicitação de notificação retorna "401 Não autorizado", o token expirou
  • Pedido de notificação devolve "403 Proibido"
  • A solicitação de notificação retorna "404 Não encontrado"
  • O pedido de notificação devolve "406 Não Aceitável"
  • Solicitação de notificação retorna "410 Gone"

A solicitação de notificação retorna "400 Bad Request"

A solicitação de notificação retorna "401 Não autorizado"

  • Causa: o servidor do aplicativo deve usar o Identificador de Segurança do Pacote (SID do Pacote) correto e a chave secreta fornecida a você quando registrou seu aplicativo. Se tiver alterado recentemente a sua chave secreta no Painel da Loja Windows, também terá de atualizar o servidor da aplicação.

    Corrigir: Visite o Windows Store Dashboard para verificar o SID e o segredo do pacote.

A solicitação de notificação retorna "401 Não autorizado", o token expirou

  • Cause: Um token de autenticação tem um tempo de vida finito. Se você enviar uma notificação com um token de acesso expirado, as credenciais do servidor do aplicativo serão inválidas e a notificação não poderá ser enviada.

    Fix: Solicite um novo token de acesso do WNS autenticando-se com o WNS usando o Identificador de Segurança do Pacote (SID do Pacote) e a chave secreta. Para obter mais informações, consulte a visão geral dos Serviços de Notificação por Push do Windows (WNS)

Pedido de notificação devolve "403 Proibido"

  • Causa: este erro ocorre quando o token de acesso que apresentou não corresponde às credenciais necessárias para enviar notificações para o URL do canal correspondente. Cada aplicativo deve ser registrado na Windows Store para receber credenciais para seu servidor de aplicativos. Para cada aplicação, apenas as credenciais fornecidas pela Loja Windows podem ser utilizadas para enviar notificações para essa aplicação e só podem ser utilizadas para essa aplicação específica.

    Fix: inicie sessão no Painel da Microsoft Store com a sua conta de desenvolvedor. Selecione seu aplicativo e clique em "Recursos avançados" -> "Gerenciar suas configurações de serviço de nuvem". Selecione "Identificar seu aplicativo" para ler instruções sobre como atualizar o manifesto do aplicativo para corresponder às suas credenciais de serviço de nuvem.

A solicitação de notificação retorna "404 Não encontrado"

  • Cause: Este erro normalmente significa que o URL do canal não está corretamente formado. A URL do canal nunca deve ser adulterada ou modificada quando você envia uma notificação ao WNS. O URL do canal deve ser sempre tratado como uma cadeia de caracteres opaca — você nunca precisa examinar ou mesmo conhecer seu conteúdo.

    Correção: verifique se o código não está modificando a URL do canal alterando um ou mais de seus caracteres ou alterando sua codificação.

O pedido de notificação devolve "406 Não Aceitável"

  • Causa: o WNS tem políticas de proteção em vigor para evitar que aplicativos mal-intencionados afetem negativamente o serviço para outros usuários e desenvolvedores. Um número excessivo de notificações em um período de tempo muito curto pode resultar no WNS a eliminar explicitamente as notificações.

    Correção: revise a frequência de notificação para ver se ela pode ser reduzida ou otimizada para produzir uma melhor experiência do usuário.

Solicitação de notificação retorna "410 Gone"

  • Causa: o URL do canal expirou. Nenhuma outra notificação pode ser enviada até que seu aplicativo seja executado e solicite uma nova URL de canal.

    Corrigir: Seu aplicativo da Windows Store deve solicitar uma URL de canal sempre que for iniciado. Não é garantido que o URL do canal que lhe é atribuído permaneça o mesmo. Se o URL tiver sido alterado, o cliente deve atualizar as informações no seu servidor na nuvem.

Erros ao tentar criar um canal de notificação por push

  • Criar um canal de notificação resulta em um erro de ERROR_NO_NETWORK
  • Criar um canal de notificação resulta em um erro de WPN_E_CLOUD_INCAPABLE
  • Criar um canal de notificação resulta em um erro de WPN_E_INVALID_APP

Note

Para erros não listados especificamente aqui, consulte Códigos de erro COM (WPN, MBN, P2P, Bluetooth).

Criar um canal de notificação resulta em um erro de ERROR_NO_NETWORK

  • Causa: o WNS requer uma conexão com a Internet para criar um canal de notificação.

    Fix: Verifique a sua conectividade com a Internet.

Criar um canal de notificação resulta em um erro de WPN_E_CLOUD_INCAPABLE

  • Causa: seu aplicativo não declarou o recurso da Internet no manifesto do aplicativo (package.appxmanifest).

    Corrija: Verifique se o manifesto da aplicação declarou capacidade de Internet. No editor de manifesto do Visual Studio, você encontrará essa opção na guia Recursos como Internet (Cliente). Para obter mais informações, consulte Capabilities.

Criar um canal de notificação resulta em um erro de WPN_E_INVALID_APP

  • Causa: seu aplicativo deve usar um nome de pacote válido. Se ainda não recebeu um, pode obtê-lo através do portal da Microsoft Store em "Recursos Avançados".

    Fix: Para obter detalhes sobre como recuperar um PKSID (Identificador de Segurança de Pacote) para seu aplicativo da Windows Store, consulte visão geral dos Serviços de Notificação por Push do Windows (WNS).

Comunicar um problema

Se você tentou as soluções sugeridas neste tópico e não resolveu o problema, poste uma mensagem nos fóruns da Microsoft para discuti-lo com os desenvolvedores da Microsoft e outras partes interessadas.

Para notificações push, além de uma descrição do problema, você pode ser solicitado a fornecer a URL do canal e um exemplo da resposta recebida do WNS, incluindo os códigos de erro HTTP e cabeçalhos HTTP. Há cabeçalhos específicos que seu servidor de aplicativos deve registrar ao relatar um problema. Para obter mais informações, consulte os cabeçalhos de solicitação e resposta do serviço de notificação por push .