在Azure通知中心上获取错误请求(400)"测试发送"

时间:2016-08-12 13:34:46

标签: android azure push-notification google-cloud-messaging azure-notificationhub

我试图通过Azure通知中心的测试发送将以下有效负载发送到特定设备(这就是我使用registration_ids的原因),但我得到了错误的请求错误。

{
"registration_ids" : ["2670873167838193734-9582072870486547213-1"],
"data":{"message":"Hello World!"},
}

我不确定为什么因为我检查了格式化,根据我看到的其他来源,它看起来很好。

有没有人知道发生了什么?

编辑:

以下是我最终设法向特定用户发送通知的方式:

在客户端(Java),我替换了行

hub.register(regid)

hub.register(regid,"myTag")

Where" myTag"可以是您想要的任何其他字符串标记。这样你就可以在'发送到标签'中输入单词myTag。在Azure的通知中心上验证您是否在设备上收到了通知。

此外,如果您要从服务器端(C#)发送通知,则需要将此标头添加到您的http请求中:

request.Headers.Add("ServiceBusNotification-Tags", "myTag");

希望这有助于任何人。

2 个答案:

答案 0 :(得分:1)

registration_id不是有效载荷的一部分(参见https://msdn.microsoft.com/en-us/library/azure/dn223273.aspx请求体),尽管它是GCM有效载荷的一部分。要发送到特定设备,您需要使用ID(例如registration_ids)标记该设备并发送到标记“{registration_id}”。

答案 1 :(得分:1)

这是由于有效负载中的registration_ids字段。通知中心允许在有效负载中传递registration_ids。通知中心在内部根据所选设备替换注册ID(在发送到GCM / FCM之前)。

https://msdn.microsoft.com/en-us/library/azure/dn530749.aspx

谢谢, Sateesh