次の方法で共有


デバイス ハンドルのコレクションにバッチを直接送信する

デバイス ハンドルのコレクション (通知の種類で表される有効なトークン) に通知のバッチを直接送信します。 この API は、 Basic レベルと Standard レベルの Notification Hub 名前空間で使用できます。 この API のユーザーは、登録やインストールを使用する必要はありません。 代わりに、この API のユーザーは、すべてのデバイスを自分で管理し、通知ハブをパススルー サービスとしてのみ使用して、さまざまなプッシュ通知サービスと通信します。

現時点では、ダイレクト バッチ送信では、要求ごとに最大 1000 台のデバイスがサポートされています。

Note

Firebase Cloud Messaging (FCM) レガシ API を使用して Google がサポートしている限り、Google Cloud Messaging (GCM) は引き続きサポートされます。 この API では、Firebase Cloud Messaging (FCM) はまだサポートされていません。

Request

Method 要求 URI HTTP バージョン
POST https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/$batch?direct&api-version=2015-08 HTTP/1.1

要求ヘッダー

必須要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。

要求ヘッダー 説明
承認 Service Bus を使用した Shared Access Signature Authentication で指定されたとおりに生成された SAS トークン。 詳細については、「 一般的な概念」を参照してください。
Content-Type multipart/mixed; boundary="boundary-string"

境界文字列は、 RFC1341 で定義されているマルチパート コンテンツ タイプに従って各パーツを区切るために使用されます。 各パーツはカプセル化境界で始まり、ヘッダー領域、空白行、本文領域で構成される本文パーツが含まれます。
ServiceBusNotification-Format 次のいずれかの有効な PlatformType 値に設定します: windowsapplegcmwindowsphoneadm、、 baidunokiax
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--

Response

応答には、HTTP 状態コードおよび一連の応答ヘッダーが含まれています。 成功した場合、応答本文は返されません。

応答コード

コード 説明
201 作成されました。
400 指定されたマルチパート コンテンツの一部が見つかりませんでした。
401 認証エラー。 アクセス キーが正しくありませんでした。
403 クォータを超過したか、メッセージが大きすぎます。メッセージは拒否されました。
404 URI にメッセージ ブランチがありません。
413 要求されたエンティティが大きすぎます。 メッセージ サイズは 64 Kb を超えることはできません。

状態コードの詳細については、「 状態コードとエラー コード」を参照してください。

応答ヘッダー

応答ヘッダー 説明
Content-Type application/xml;charset=utf-8
場所 このヘッダーは、Standard レベルの Notification Hubs でのみ使用できます。

このヘッダーには、通知メッセージ ID が含まれます。 これは、メッセージごとのテレメトリ: 通知メッセージ テレメトリの取得と PNS フィードバックの関連付けと共に使用されます。 location ヘッダーは、次の形式を使用します。

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

応答本文

なし

参照

直接送信
APNS ネイティブ通知を送信する
GCM ネイティブ通知を送信する
MPNS ネイティブ通知を送信する
WNS ネイティブ通知を送信する