我需要在发送邮件时应该从azure通知中心返回的通知消息ID。
我使用SendGcmNativeNotificationAsync
方法从应用后端发送消息。
NotificationOutcome outcome = await hub.SendGcmNativeNotificationAsync(notif, tags);
发送通知后,outcome.NotificationId属性为空或null。我如何获得通知ID?
虽然收到的outcome.Result[0].Outcome
有值
“通知已成功发送到推送通知系统”
但通知未发送到已注册的设备。
此外,我在outcome.trackingid
中获得了跟踪ID,如何使用它来跟踪消息。
我正在使用免费版的azure portal。
请建议
提前致谢!
答案 0 :(得分:0)
我花了相当长的时间才能弄清这一点,因为目前尚不清楚,但答案很简单: NotificationOutcome.NotificationId
在Azure定价层不是S1(标准)时始终为空。 / strong>
要找出问题的原因,请暂时切换到S1定价层。然后,您将获得NotificationId,Azure将注册“按消息遥测”。
理论上,您应该能够通过使用NotificationId调用GetNotificationOutcomeDetailsAsync
来获取结果,以获取更多错误信息。此呼叫最多可能需要30分钟(!)才能成功(如果调用得太早,您会得到MessagingEntityNotFoundException
)。
不幸的是,即使消息的设备ID错误或过期,结果State仍为Completed。
Azure中为您的Notification Hub显示的度量标准中的结果是正确的,但是我还没有找到一种可靠的方法来基于“每条消息”检索结果。
别忘了切换回F1(免费)定价层!