Skicka batchar direkt till en samling enhetsreferenser
Skickar en batch med meddelanden direkt till en samling enhetsreferenser (en giltig token som uttrycks av meddelandetypen). Det här API:et är tillgängligt för Notification Hub-namnrymder på Basic- och Standard-nivå. Användare av det här API:et behöver inte använda registreringar eller installationer. I stället hanterar användare av det här API:et alla enheter på egen hand och använder en meddelandehubb enbart som en direkttjänst för att kommunicera med de olika push-meddelandetjänsterna.
För närvarande stöder Direct Batch Send upp till 1 000 enheter per begäran.
Anteckning
Vi fortsätter att stödja Google Cloud Messaging (GCM) så länge Google stöder det via deras äldre API för Firebase Cloud Messaging (FCM). Det här API:et stöder inte Firebase Cloud Messaging (FCM) än.
Förfrågan
Metod | URI för förfrågan | HTTP-version |
---|---|---|
POST | https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/$batch?direct&api-version=2015-08 |
HTTP/1.1 |
Begärandehuvuden
I följande tabell beskrivs obligatoriska och valfria begärandehuvuden.
Begärandehuvud | Beskrivning |
---|---|
Auktorisering | SAS-token genereras enligt vad som anges i Signaturautentisering för delad åtkomst med Service Bus. Mer information finns i Vanliga koncept. |
Content-Type | multipart/mixed; boundary="boundary-string" Gränssträngen används för att separera varje del enligt innehållstypen för flera delar som definieras i RFC1341. Varje del börjar med en inkapslingsgräns och innehåller sedan en brödtextdel som består av rubrikområde, en tom linje och ett brödtextområde. |
ServiceBusNotification-Format | Ange till något av följande giltiga PlatformType-värden: windows , , gcm apple , windowsphone , adm , , baidu nokiax . |
x-ms-version | 2015-04 (stöds av 2015-01 och senare) |
Begärandetext
Begärandetexten är flera delar enligt definitionen i RFC1341. Varje del börjar med en inkapslingsgräns och innehåller sedan en brödtextdel som består av rubrikområde, en tom linje och ett brödtextområde. Den tomma länken får inte innehålla något blanksteg. Se exempel på begäran nedan.
Baserat på målplattformstypen ändras brödtextformatet för en meddelandedel för att vara kompatibelt med varje enskild plattform enligt beskrivningen i de interna Skicka API:erna nedan.
- Skicka ett internt APNS-meddelande
- Skicka ett internt GCM-meddelande
- Skicka ett ursprungligt MPNS-meddelande
- Skicka ett internt WNS-meddelande
Enhetens del av begärandetexten måste vara en JSON-matris med enhetshandtagen som ska ta emot meddelandet.
Exempel på begäranden
Här är ett WNS-exempel :
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--
Här är ett GCM-exempel :
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--
Följande är ett APNS-exempel :
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--
Svarsåtgärder
Svaret innehåller en HTTP-statuskod och en uppsättning svarshuvuden. Inget svarstext returneras vid lyckat resultat.
Svarskoder
Kod | Description |
---|---|
201 | Skapad. |
400 | Det gick inte att hitta en del av det angivna flerdelsinnehållet. |
401 | Auktoriseringsfel. Åtkomstnyckeln var felaktig. |
403 | Kvoten har överskridits eller meddelandet är för stort. meddelandet avvisades. |
404 | Ingen meddelandegren vid URI:n. |
413 | Begärd entitet är för stor. Meddelandestorleken får inte vara över 64 kB. |
Information om statuskoder finns i Status och Felkoder.
Svarshuvuden
Svarsrubrik | Description |
---|---|
Content-Type | application/xml; charset=utf-8 |
Location | Det här huvudet är bara tillgängligt för Notification Hubs på standardnivå. Det här huvudet innehåller meddelande-ID:t. Den används med telemetri per meddelande: Hämta telemetri för meddelanden och korrelera PNS-feedback. Platsrubriken använder följande format: https://{your namespace}.servicebus.windows.net/{your hub name}/messages/{notification message id}?api-version=2015-04 |
Själva svaret
Ingen
Se även
Skicka direkt
Skicka ett internt APNS-meddelande
Skicka ett internt GCM-meddelande
Skicka ett inbyggt MPNS-meddelande
Skicka ett internt WNS-meddelande