次の方法で共有


通知メッセージテレメトリを取得する

この 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 には、次のいずれかの値を指定できます。
  • 破棄済み: メッセージ処理は破棄されました。 受け入れ可能な時間枠内でメッセージを処理できなかった場合に発生します。 既定では、30 分です。
  • キャンセル済み: ユーザーはこのスケジュールされたメッセージを取り消しました。
  • 完了: メッセージ処理が完了しました。
  • エンキュー済み: メッセージは受け入れられましたが、処理はまだ開始されていません。
  • NoTargetFound: このメッセージを送信するデバイスが見つかりませんでした。
  • 処理: メッセージ処理が開始されました。
  • スケジュール済み: メッセージはキュー内にあり、スケジュールされた時刻に送信されます。
  • 不明: メッセージ処理が不明な状態です。
EnqueueTime メッセージが受け入れられた時刻を示します。
StartTime 通知ハブ サービスが通知で作業を開始したタイミングを示します。
EndTime 通知ハブ サービスが通知の作業を完了したタイミングを示します。
NotificationBody 元の通知メッセージの本文。
TargetPlatforms 通知ターゲットのプラットフォームを示します。 コンマ区切り文字列として次の値を含めることができます。
  • windows
  • apple
  • gcm
  • windowsphone
  • adm
  • baidu
  • template
  • windowstemplate
  • appletemplate
  • gcmtemplate
  • windowsphonetemplate
  • admtemplate
  • baidutemplate
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 エラーの可能性は次のとおりです。
  • 無効な PNS 資格情報
  • PNS に到達できない
  • BadChannel
  • ExpiredChannel
  • PnsThrottled
  • InvalidToken
  • WrongToken
  • Dropped
  • WrongChannel

結果

名前 カウントの説明
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>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;toast&gt;&lt;visual&gt;&lt;binding template="ToastText01"&gt;&lt;text id="1"&gt;Hello from a .NET App!&lt;/text&gt;&lt;/binding&gt;&lt;/visual&gt;&lt;/toast&gt;</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 ネイティブ通知を送信する