Отправка пакетов непосредственно в коллекцию дескрипторов устройств

Отправляет пакет уведомлений непосредственно в коллекцию дескрипторов устройства (допустимый маркер, выраженный типом уведомления). Этот API доступен для пространств имен Концентратора уведомлений уровня "Базовый" и "Стандартный". Пользователям этого API не нужно использовать регистрации или установки. Вместо этого пользователи этого API самостоятельно управляют всеми устройствами и используют центр уведомлений исключительно в качестве сквозной службы для взаимодействия с различными службами push-уведомлений.

В настоящее время прямая пакетная отправка поддерживает до 1000 устройств на запрос.

Примечание

Мы продолжаем поддерживать Google Cloud Messaging (GCM) до тех пор, пока Google поддерживает его через устаревший API Firebase Cloud Messaging (FCM). Этот API еще не поддерживает Firebase Cloud Messaging (FCM).

Запрос

Метод Универсальный код ресурса (URI) запроса Версия HTTP
POST https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/$batch?direct&api-version=2015-08 HTTP/1.1

Заголовки запросов

В следующей таблице перечислены обязательные и необязательные заголовки запросов.

Заголовок запроса Описание
Авторизация Маркер SAS создается, как указано в разделе Проверка подлинности подписанного URL-адреса с помощью служебной шины. Дополнительные сведения см. в статье Common Concepts (Основные понятия).
Content-Type multipart/mixed; boundary="boundary-string"

Строка границы используется для разделения каждой части в соответствии с многокомпонентным типом контента, определенным в RFC1341. Каждая часть начинается с границы инкапсуляции, а затем содержит часть тела, состоящую из области заголовка, пустой строки и области тела.
ServiceBusNotification-Format Задайте одно из следующих допустимых значений PlatformType: windows, apple, gcm, windowsphone, adm, nokiax, . baidu
x-ms-version 2015-04 (поддерживается в 2015-01 и более поздних версиях)

Текст запроса

Текст запроса является составным, как определено в RFC1341. Каждая часть начинается с границы инкапсуляции, а затем содержит часть тела, состоящую из области заголовка, пустой строки и области тела. Пустая ссылка не должна содержать пробелов. См. примеры запросов ниже.

В зависимости от типа целевой платформы формат текста части уведомления изменится в соответствии с каждой отдельной платформой, как описано в собственных API отправки ниже.

Часть устройства в тексте запроса должна быть массивом JSON дескрипторов устройств, которые будут получать уведомление.

Примеры запросов

Ниже приведен пример 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--

Ниже приведен пример 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--

Ниже приведен пример 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--

Ответ

Ответ включает код состояния HTTP и набор заголовков ответа. Текст ответа не возвращается при успешном выполнении.

Коды ответов

Код Описание
201 Создан.
400 Не удалось найти часть предоставленного многокомпонентного содержимого.
401 Ошибка авторизации. Неправильный ключ доступа.
403 Превышена квота или сообщение слишком велико; сообщение отклонено.
404 Ветвь сообщения по URI отсутствует.
413 Запрошенная сущность слишком велика. Размер сообщения не может быть более 64 КБ.

Сведения о кодах состояний см. в разделе Коды состояний и ошибок.

Заголовки ответов

Заголовок ответа Описание
Content-Type application/xml; charset=utf-8
Расположение Этот заголовок доступен только для Центров уведомлений уровня "Стандартный".

Этот заголовок будет содержать идентификатор сообщения уведомления. Он используется с телеметрией каждого сообщения: получением телеметрии сообщений уведомлений и коррелированием обратной связи PNS. Заголовок расположения имеет следующий формат:

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

Текст ответа

None

См. также:

Прямая отправка
Отправка собственного уведомления APNS
Отправка собственного уведомления GCM
Отправка собственного уведомления MPNS
Отправка собственного уведомления WNS