2017-04-09 50 views
0

私はそれに単純なメッセンジャーコンポーネントを持つアプリを持っています。 user1がuser2にメッセージを送信すると、私はAzure Notification Hubsを使用してuser2にプッシュ通知を送信しています。しかし、我々が必要Azure NotificationHubsでプッシュ通知が正常に配信されたかどうかを確認するにはどうすればよいですか?

NotificationOutcome outcome1 = await hub.SendAppleNativeNotificationAsync(jsoniOSPayload, tags); 
NotificationOutcome outcome2 = await hub.SendGcmNativeNotificationAsync(jsonAndroidPayload, tags); 
...(etc.) 

:私はちょうど私がサポートする各タイプの通知をキュー、私は彼らが登録している携帯電話のOSのかわからない、プッシュ通知のために、ユーザのデバイスを登録するには、通知ハブを使用していますので、アプリが削除されたケースを処理します。この場合、プッシュ通知をデバイスに送信できない場合は、ユーザーに電子メールを送信する必要があります。

質問:少なくとも1つの通知がユーザーデバイスに正常に配信されたかどうかを確認するにはどうすればよいですか?私はNotificationHubClient.EnableTestSendプロパティについて知っています。これは、NotificationOutcomeオブジェクトが成功カウントを持つようにします。これは完璧に動作しますが、documentationが、これは生産に最適ではないでしょう示します

「テスト送信は、以下が発生し、有効になっている場合: のみごとに10台のデバイスに達するすべての通知はcall.Theを送るSend *メソッド は、すべての通知配信の結果のリストを返す テレメトリに表示される結果と同じ結果が得られます。 には、認証エラー、スロットリングエラー、 配信成功などが含まれます。テスト目的のみ、 生産用ではなく、スロットルされています。

ご了承ください。

答えて

1

少なくとも1つの通知がユーザーデバイスに正常に配信されたかどうかを確認する方法を教えてください。

前述したように、NotificationHubClient.EnableTestSendはデバッグに使用され、10個のデバイスに制限されています。 正常に配信された回数を取得したい場合は、機能NotificationHubClient.GetNotificationOutcomeDetailsAsync(string notificationId)を使用できます。詳細はdocumentを参照してください。

デモコード:

NotificationHubClient hub = NotificationHubClient.CreateClientFromConnectionString("Endpoint=sb://notificationnamespace.servicebus.windows.net/;SharedAccessKeyName=DefaultFullSharedAccessSignature;SharedAccessKey=xxxxxxx", "NotificationHub Name"); 
string message = "{\"title\":\"((Notification title))\",\"description\":\"Hello from Azure\"}"; 
      var result = await hub.SendGcmNativeNotificationAsync(message); //GCM for example. 
      var notificationDetails = await hub.GetNotificationOutcomeDetailsAsync(result.NotificationId); 
      return notificationDetails; 

enter image description here

:それはちょうど標準価格ティアのためです。

+0

私は、標準価格の涙が私の問題だったとは思いません。どこかで通知IDを見つけようとしていましたが、下位層では値が応答にないようです。お返事をありがとうございます! – lehn0058

関連する問題