通知メッセージテレメトリを取得する
この API は、送信プッシュ通知の完了状態に関する追加のテレメトリを提供します。 ハブから送信されたプッシュ通知の監視に役立つよう設計されています。 この API が使用する通知 ID は、通知の送信に使用される REST API の応答に含まれる HTTP Location ヘッダーから取得できます。
このメッセージごとのテレメトリ機能は、 スケジュールされた通知にも使用できます。
この API は、 Standard レベルの通知ハブでのみ使用できます。
Request
Method | 要求 URI | HTTP バージョン |
---|---|---|
GET | https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/{notification message ID}?api-version=2016-07 |
HTTP/1.1 |
要求ヘッダー
必須要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。
要求ヘッダー | 説明 |
---|---|
承認 | Service Bus を使用した Shared Access Signature Authentication で指定されたとおりに生成された SAS トークン。 |
x-ms-version | 2016-07 (2015-01 以降でサポート) |
要求本文
[なし] :
Response
応答には、HTTP 状態コードおよび一連の応答ヘッダーが含まれています。 成功すると、応答本文が返されます。
応答コード
コード | 説明 |
---|---|
200 | メッセージ テレメトリが正常に取得されました。 テレメトリ データは、送信された通知メッセージの対象となるデバイスの数と、処理のためにシステムを通じてメッセージが進行する距離に応じて、部分的な応答になる場合があります。 |
400 | 要求の形式が正しくないため、メッセージ テレメトリを取得できませんでした。 |
401 | 認証エラー。 アクセス キーが正しくありませんでした。 |
403 | この機能が SKU に対して有効になっていないため、要求は拒否されました。 Standard にアップグレードします。 |
404 | テレメトリが存在しません。 このエラーは、通知 ID が無効な場合に発生する可能性があります。 |
状態コードの詳細については、「 状態コードとエラー コード」を参照してください。
応答ヘッダー
応答ヘッダー | 説明 |
---|---|
Content-type | application/xml; charset=utf-8 |
応答本文
応答本文は、次の要素で構成される NotificationDetails ドキュメントです。
要素 | 説明 |
---|---|
NotificationId | 通知メッセージを識別する要求に渡される ID。 |
Location | メッセージの URI |
State | メッセージの進行状況を示します。 State には、次のいずれかの値を指定できます。
|
EnqueueTime | メッセージが受け入れられた時刻を示します。 |
StartTime | 通知ハブ サービスが通知で作業を開始したタイミングを示します。 |
EndTime | 通知ハブ サービスが通知の作業を完了したタイミングを示します。 |
NotificationBody | 元の通知メッセージの本文。 |
TargetPlatforms | 通知ターゲットのプラットフォームを示します。 コンマ区切り文字列として次の値を含めることができます。
|
ApnsOutcomeCounts | この要素は、Apple Push Notification Service に送信される通知に存在します。 Outcome インスタンスのコレクションを格納します。 |
MpnsOutcomeCounts | この要素は、Microsoft プッシュ通知サービスに送信される通知に存在します。 Outcome インスタンスのコレクションを格納します。 |
WnsOutcomeCounts | この要素は、Windows Notification Service に送信される通知に存在します。 Outcome インスタンスのコレクションを格納します。 |
GcmOutcomeCounts | この要素は、Google Cloud Messaging に送信される通知に存在します。 Outcome インスタンスのコレクションを格納します。 |
AdmOutcomeCounts | この要素は、Amazon Device Messaging に送信される通知に存在します。 Outcome インスタンスのコレクションを格納します。 |
結果 | これらのインスタンスのコレクションは、プラットフォーム通知サービスごとに上記の数を構成します。 各結果には、「 結果 」セクションに記載されている名前付きカウントのいずれかを指定できます。 |
PnsErrorDetailsUri | この API と通知メッセージを送信する API には、2016-07 以降 Api-Version 使用する必要があります。 PNS エラーの詳細は、関連付けられている送信操作が完了した後でのみ完全に使用できます。 関連する各 PNS によって返されるエラーを含む BLOB への URI を取得します。 PNS によってエラーが報告されなかった場合、このメンバーは応答に含まれません。 Azure Storage API を使用して BLOB を読み取ることができます。 詳細については、「.NET または Azure Storage Services REST API リファレンスを使用した Azure Blob Storage の概要」を参照してください。PNS エラーの可能性は次のとおりです。
|
結果
名前 | カウントの説明 |
---|---|
AbandonedNotificationMessages | タイムアウトのために破棄されたプッシュ サービスへの送信要求の数。 |
BadChannel | チャネルが無効であるため、プッシュ サービスへの通信に失敗しました。 |
ChannelDisconnected | プッシュ サービスが切断されました。 |
ChannelThrottled | スロットルが原因でプッシュ サービスがアクセスを拒否しました。 |
Dropped | プッシュ サービスは、メッセージが削除されたことを示します。 |
ExpiredChannel | チャネルの有効期限が切れたため、プッシュ サービスへの通信に失敗しました。 |
InvalidCredentials | プッシュ サービスに対する認証に使用される資格情報が失敗しました。 |
InvalidNotificationSize | プッシュ要求が大きすぎます。 |
NoTargets | 送信するものが見つからなかった要求の数。 |
PnsInterfaceError | プッシュ サービス コントラクトの通信に失敗しました。 |
PnsServerError | プッシュ サービスは、その側でエラーが発生したことを示しました。 |
PnsUnavailable | プッシュ サービスは使用できません。 |
PnsUnreachable | プッシュ サービスが応答しなくなった。 |
スキップ | 重複する登録の数 (同じ PNS ハンドルが見つかり、異なる登録 ID)。 |
Success | いくつかの数のデバイスに要求が正常に送信されました。 |
Throttled | スロットルが原因でプッシュ サービスがアクセスを拒否しました。 |
UnknownError | 不明なエラーが発生しました。 |
WrongToken | PNS ハンドルが有効なハンドルとして PNS によって認識されませんでした。 |
WNS に通知を送信するテレメトリの例を次に示します。
<NotificationDetails xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<NotificationId>{Your message id}</NotificationId>
<Location>sb://{Your namespace}.servicebus.windows.net/{your hub name}/messages/{your message id}?api-version=2015-04</Location>
<State>Completed</State>
<EnqueueTime>2015-11-02T21:19:43Z</EnqueueTime>
<StartTime>2015-11-02T21:19:43.9926996Z</StartTime>
<EndTime>2015-11-02T21:19:43.9926996Z</EndTime>
<NotificationBody><?xml version="1.0" encoding="utf-16"?><toast><visual><binding template="ToastText01"><text id="1">Hello from a .NET App!</text></binding></visual></toast></NotificationBody>
<TargetPlatforms>windows</TargetPlatforms>
<WnsOutcomeCounts>
<Outcome>
<Name>Success</Name>
<Count>3</Count>
</Outcome>
<Outcome>
<Name>WrongToken</Name>
<Count>1</Count>
</Outcome>
</WnsOutcomeCounts>
<PnsErrorDetailsUri>{Blob uri}</PnsErrorDetailsUri>
</NotificationDetails>
参照
テンプレート通知を送信する
APNS ネイティブ通知を送信する
GCM ネイティブ通知を送信する
MPNS ネイティブ通知を送信する
WNS ネイティブ通知を送信する