Partilhar via


Enviar lotes diretamente para uma coleção de identificadores de dispositivos

Envia um lote de notificações diretamente para uma coleção de identificadores de dispositivos (um token válido, conforme expresso pelo Tipo de notificação). Esta API está disponível para espaços de nomes do Hub de Notificação de escalão Básico e Standard. Os utilizadores desta API não precisam de utilizar registos ou instalações. Em vez disso, os utilizadores desta API gerem todos os dispositivos por conta própria e utilizam um hub de notificação apenas como um serviço pass-through para comunicar com os vários Serviços de Notificação Push.

Neste momento, o Direct Batch Send suporta até 1000 dispositivos por pedido.

Nota

Continuamos a suportar o Google Cloud Messaging (GCM), desde que a Google o suporte através da sua API legada do Firebase Cloud Messaging (FCM). Esta API ainda não suporta o Firebase Cloud Messaging (FCM).

Pedir

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

Cabeçalhos do pedido

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

Cabeçalho do pedido Descrição
Autorização Token de SAS gerado conforme especificado em Autenticação de Assinatura de Acesso Partilhado com o Service Bus. Para obter mais informações, consulte Conceitos Comuns.
Content-Type multipart/mixed; boundary="boundary-string"

A cadeia de limites é utilizada para separar cada parte de acordo com o tipo de conteúdo multipart definido em RFC1341. Cada parte começa com um limite de encapsulamento e, em seguida, contém uma parte do corpo composta por área de cabeçalho, uma linha em branco e uma área do corpo.
ServiceBusNotification-Format Defina como um dos seguintes valores de PlatformType válidos: windows, , apple, gcm, windowsphone, adm, nokiax, . baidu
x-ms-version 2015-04 (Suportado por 2015-01 e posterior)

Corpo do pedido

O corpo do pedido é multipart, conforme definido em RFC1341. Cada parte começa com um limite de encapsulamento e, em seguida, contém uma parte do corpo composta por área de cabeçalho, uma linha em branco e uma área do corpo. A ligação em branco não pode conter nenhum espaço em branco. Veja os exemplos de pedido abaixo.

Com base no tipo de plataforma de destino, o formato do corpo de uma peça de notificação será alterado para estar em conformidade com cada plataforma individual, conforme abrangido pelas APIs de Envio nativas abaixo.

Os dispositivos que fazem parte do corpo do pedido têm de ser uma matriz JSON das alças do dispositivo que irão receber a notificação.

Exemplos de pedidos

Eis um exemplo WNS :

POST https://{namespace}.servicebus.windows.net/{Notification Hub}/messages/$batch?direct&api-version=2015-08 HTTP/1.1
Content-Type: multipart/mixed; boundary = "simple-boundary"
Authorization: SharedAccessSignature sr=https%3a%2f%2f{Namespace}.servicebus.windows.net%2f{Notification Hub}%2fmessages%2f%24batch%3fdirect%26api-version%3d2015-08&sig={Signature}&skn=DefaultFullSharedAccessSignature
ServiceBusNotification-Format: windows
X-WNS-Type: wns/toast
Host: {Namespace}.servicebus.windows.net
Content-Length: 514
Expect: 100-continue
Connection: Keep-Alive


--simple-boundary
Content-type: text/xml
Content-Disposition: inline; name=notification

<toast><visual><binding template="ToastText01"><text id="1">Hello there!</text></binding></visual></toast>
--simple-boundary
Content-type: application/json
Content-Disposition: inline; name=devices

['https://db5.notify.windows.com/?token={Token1}','https://db5.notify.windows.com/?token={Token2}','https://db5.notify.windows.com/?token={Token3}']
--simple-boundary--

Eis um exemplo de GCM :

POST https://{Namespace}.servicebus.windows.net/{Notification Hub}/messages/$batch?direct&api-version=2015-08 HTTP/1.1
Content-Type: multipart/mixed; boundary="simple-boundary"
Authorization: SharedAccessSignature sr=https%3a%2f%2f{Namespace}.servicebus.windows.net%2f{Notification Hub}%2fmessages%2f%24batch%3fdirect%26api-version%3d2015-08&sig={Signature}&skn=DefaultFullSharedAccessSignature
ServiceBusNotification-Format: gcm
Host: {Namespace}.servicebus.windows.net
Content-Length: 431
Expect: 100-continue
Connection: Keep-Alive


--simple-boundary
Content-Type: application/json
Content-Disposition: inline; name=notification

{"data":{"message":"Hello via Direct Batch Send!!!"}}
--simple-boundary
Content-Type: application/json
Content-Disposition: inline; name=devices

['Device Token1','Device Token2','Device Token3']
--simple-boundary--

Segue-se um exemplo de APNS :

POST https://{Namespace}.servicebus.windows.net/{Notification Hub}/messages/$batch?direct&api-version=2015-08 HTTP/1.1
Content-Type: multipart/mixed; boundary="simple-boundary"
Authorization: SharedAccessSignature sr=https%3a%2f%2f{Namespace}.servicebus.windows.net%2f{Notification Hub}%2fmessages%2f%24batch%3fdirect%26api-version%3d2015-08&sig={Signature}&skn=DefaultFullSharedAccessSignature
ServiceBusNotification-Format: apple
Host: {Namespace}.servicebus.windows.net
Content-Length: 511
Expect: 100-continue
Connection: Keep-Alive


--simple-boundary
Content-Type: application/json
Content-Disposition: inline; name=notification

{"aps":{"alert":"Hello using APNS via Direct Batch Send!!!"}}
--simple-boundary
Content-Type: application/json
Content-Disposition: inline; name=devices

['Device Token1','Device Token2','Device Token3']
--simple-boundary--

Resposta

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

Códigos de resposta

Código Descrição
201 Criado.
400 Não foi possível localizar uma parte do conteúdo multipart fornecido.
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

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 irá conter o ID da mensagem de notificação. É utilizado com a 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

Nenhuma

Consulte também

Envio direto
Enviar uma notificação nativa do APNS
Enviar uma notificação nativa do GCM
Enviar uma notificação nativa do MPNS
Enviar uma notificação nativa do WNS