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 , apple nokiax gcm adm windowsphone baidu . |
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.
- Inviare una notifica nativa APNS
- Inviare una notifica nativa di GCM
- Inviare una notifica nativa MPNS
- Inviare una notifica nativa WNS
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