Dela via


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, , gcmapple, windowsphone, adm, , baidunokiax.
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.

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