我目前正在开发一个推送通知API,该API可一次与多个应用程序一起使用,处理通知并减少将来应用程序的编程时间。由于我能够在Android设备上注册和接收通知,因此它已经部分工作了。
最终,我们的应用程序之一将向已注册的用户发送广播通知。但是某些令牌可能已过期,这将导致GCM失败。我已经进行了测试,并且似乎通过一个http调用就向GCM发送了一系列令牌,效果很好,因为带有有效令牌的设备会收到通知。
我找不到搜索GCM文档的方法是在发生故障的情况下获取更多详细信息的一种方法。例如,当我向两个用户发送通知时,一个带有有效令牌,另一个带有无效令牌,则得到以下结果:
{
"multicast_id":7625209716676388798,
"success":1,
"failure":1,
"canonical_ids":0,
"results":[
{"error":"InvalidRegistration"},
{"message_id":"0:1466511379030431%c4718df8f9fd7ecd"}
]
}
我们可以看到其中一条消息发送失败,但是我正在寻找一种获取更多详细信息的方法,理想情况下是导致失败的令牌,因此我可以将其从数据库中删除。
有什么办法做到这一点?使用message_id也许吗?还是我有什么办法可以找到存储在数据库中的无效令牌,以便清除它们?我可能已经错过了文档中的某些内容,即使指向它的链接也将很有用。
根据此文档,GCM服务器将使用有关您用于尝试发送推送通知的令牌的信息来响应您的服务器。
同样根据此链接,如果应用程序服务器未能完成其部分注册握手,则客户端应用程序应重试将注册令牌发送到服务器或删除注册令牌。可以使用清除GCM服务器中的旧令牌ÌnstanceID.deleteToken()
。
检查以下链接:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句