Partilhar via


Envio direto

Envia uma notificação diretamente para uma alça de dispositivo (um token válido, conforme expresso pelo tipo de Notificação ). Os utilizadores desta API não precisam de utilizar registos ou instalações. Em vez disso, gere todos os dispositivos por conta própria e utiliza os Hubs de Notificação do Azure apenas como um serviço pass-through para comunicar com os vários Serviços de Notificação Push.

Importante

O Firebase Cloud Messaging (FCM) é um serviço que, entre outras coisas, facilita o envio de notificações push para dispositivos Android suportados pelo Google Play. Atualmente, os Hubs de Notificação do Azure comunicam com a FCM com o protocolo HTTP legado. A FCM v1 é uma API atualizada que oferece mais funcionalidades e capacidades. A Google anunciou que está a preterir o HTTP legado da FCM e deixará de o apoiar a 20 de junho de 2024. Por conseguinte, os programadores que utilizam os Hubs de Notificação do Azure para comunicar com dispositivos Android suportados pelo Google Play atualmente terão de migrar as suas aplicações e payloads de notificação para o formato mais recente. Os Hubs de Notificação do Azure continuarão a suportar HTTP legado da FCM até que a Google deixe de aceitar pedidos. Assim que a nova integração da FCM estiver concluída, os Hubs de Notificação do Azure anunciarão quando pode começar a migrar. Para obter mais detalhes, veja os passos de migração neste artigo.

Pedir

Método URI do pedido Versão HTTP
POST https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/?direct&api-version=2015-04 HTTP/1.1

Cabeçalhos do pedido

A tabela seguinte descreve os cabeçalhos de pedido obrigatórios e opcionais.

Cabeçalho do pedido Description
Autorização Token de SAS gerado conforme especificado em Autenticação de Assinatura de Acesso Partilhado com o Service Bus.
Content-Type Defina o cabeçalho Tipo de Conteúdo com base no serviço de notificação da plataforma de destino:
  • WNS: definido como aplicação/json; charset=utf-8 ou aplicação/xml. Se o tipo de notificação (X-WNS-Type) for "wns/raw", defina como application/octet-stream.
  • GCM e APNS: definido como aplicação/json; charset=utf-8.
  • MPNS: definido como aplicação/xml;charset=utf-8.
ServiceBusNotification-DeviceHandle A alça do dispositivo PNS.
ServiceBusNotification-Tags {single tag identifier} (opcional)
ServiceBusNotification-Format Defina como um dos seguintes valores de PlatformType válidos: windows, , apple, gcm, windowsphone, adm, nokiaxbaidu
x-ms-version 2015-04 (Suportado por 2015-01 e posterior)

Corpo do pedido

Com base no tipo de plataforma, o formato do corpo do pedido muda. Veja os formatos do corpo de cada plataforma individual nas APIs REST de Envio nativas.

Resposta

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

Códigos de resposta

Código Descrição
201 Mensagem enviada com êxito.
400 O pedido é mal formado (por exemplo, cabeçalhos de encaminhamento não válidos, não é válido tipo de conteúdo, a mensagem excede o tamanho, formato de mensagem incorreto).
401 Falha de autorização. A chave de acesso estava incorreta.
403 Quota excedida ou mensagem demasiado grande; a mensagem foi rejeitada.
404 Nenhum ramo de mensagem no URI.
413 Entidade pedida demasiado grande. O tamanho da mensagem não pode ter mais de 64 Kb.

Para obter informações sobre códigos de estado, veja Códigos de Estado e Erro.

Cabeçalhos de resposta

Ao utilizar HTTP 1.1, o feedback PNS não funciona ao utilizar a autenticação baseada em certificados; não devolve dados. Utilize a autenticação baseada em tokens.

Cabeçalho de resposta Descrição
Content-Type application/xml; charset=utf-8
Localização Este cabeçalho só está disponível para Hubs de Notificação de escalão Standard.

Este cabeçalho contém o ID da mensagem de notificação. É utilizado com telemetria por mensagem: Obter Telemetria de Mensagens de Notificação e correlacionar comentários PNS. O cabeçalho de localização utiliza o seguinte formato:

https://{your namespace}.servicebus.windows.net/{your hub name}/messages/{notification message id}?api-version=2015-04.

Corpo da resposta

Nenhum.

Passos seguintes