Condividi tramite


Inviare batch direttamente a una raccolta di handle di dispositivi

Invia un batch di notifiche direttamente a una raccolta di handle di dispositivi (un token valido espresso dal tipo di notifica). Questa API è disponibile per gli spazi dei nomi hub di notifica di livello Basic e Standard. Gli utenti di questa API non devono usare registrazioni o installazioni. Gli utenti di questa API gestiscono invece tutti i dispositivi da soli e usano un hub di notifica esclusivamente come servizio pass-through per comunicare con i vari servizi di notifica push.

A questo punto, Direct Batch Send supporta fino a 1000 dispositivi per richiesta.

Nota

Continuiamo a supportare Google Cloud Messaging (GCM) purché Google lo supporti tramite l'API legacy di Firebase Cloud Messaging (FCM). Questa API non supporta ancora Firebase Cloud Messaging (FCM).

Richiesta

Metodo URI richiesta Versione HTTP
POST https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/$batch?direct&api-version=2015-08 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 firma di accesso condiviso con il bus di servizio. Per altre informazioni, vedere Concetti comuni.
Content-Type multipart/mixed; boundary="boundary-string"

La stringa di limite viene usata per separare ogni parte in base al tipo di contenuto multipart definito in RFC1341. Ogni parte inizia con un limite di incapsulazione e quindi contiene una parte del corpo costituita da un'area di intestazione, una riga vuota e un'area del corpo.
ServiceBusNotification-Format Impostare su uno dei valori PlatformType validi seguenti: windows, applenokiaxgcmadmwindowsphonebaidu.
x-ms-version 2015-04 (Supportato da 2015-01 e versioni successive)

Testo della richiesta

Il corpo della richiesta è multipart definito in RFC1341. Ogni parte inizia con un limite di incapsulazione e quindi contiene una parte del corpo costituita da un'area di intestazione, una riga vuota e un'area del corpo. Il collegamento vuoto non deve contenere spazi vuoti. Vedere gli esempi di richiesta seguenti.

In base al tipo di piattaforma di destinazione, il formato del corpo di una parte di notifica verrà modificato in modo che sia conforme a ogni singola piattaforma, come illustrato nelle API di invio native riportate di seguito.

La parte dei dispositivi del corpo della richiesta deve essere una matrice JSON degli handle del dispositivo che riceverà la notifica.

Esempi di richiesta

Ecco un esempio 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--

Ecco un esempio 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--

Di seguito è riportato un esempio 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--

Risposta

Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta. Nessun corpo della risposta viene restituito al successo.

Codici di risposta

Codice Descrizione
201 Creazione riuscita.
400 Impossibile trovare una parte del contenuto multipart fornito.
401 Errore di autorizzazione. La chiave di accesso non è corretta.
403 Quota superata o messaggio troppo grande; messaggio rifiutato.
404 Nessun ramo di messaggio nell'URI.
413 Entità richiesta troppo grande. Le dimensioni del messaggio non possono essere superiori a 64 Kb.

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

Intestazioni di risposta

Intestazione risposta Descrizione
Content-Type application/xml; charset=utf-8
Posizione Questa intestazione è disponibile solo per Hub di notifica livello Standard.

Questa intestazione conterrà l'ID del messaggio di notifica. Viene usato con i dati di telemetria per messaggio: ottenere i dati di telemetria dei messaggi di notifica e correlare il feedback PNS. L'intestazione della posizione usa il formato seguente:

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

Corpo della risposta

nessuno

Vedere anche

Invio diretto
Inviare una notifica nativa APNS
Inviare una notifica nativa di GCM
Inviare una notifica nativa MPNS
Inviare una notifica nativa WNS