我试图通过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");
希望这有助于任何人。
答案 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