我正在尝试向一些安卓设备发送推送更新。其中一些设备在此期间已获得新的id,谷歌告诉我有规范化的id。从文档中了解到:
如果设置了message_id,请检查registration_id:
- 如果设置了registration_id,请在您的服务器数据库中使用新值(规范ID)替换原始ID。请注意,原始ID不是结果的一部分,因此您需要从传递请求的registration_ids列表中获取它(使用相同的索引)。
当向Google发送超过一个registration id时,我是否遗漏了某个部分,或者这是否存在歧义?
我的请求(为了易读性替换了id):
谷歌的响应是:
从这可以得出,id 3 是正确的,但我应该用哪些原始 id 替换它呢?把每个已注册的 id 的所有消息都发送一遍是浪费的。我在 Stackoverflow 上读到了一篇文章(GCM 和 id 处理),解决了 Java 服务器的问题,但我的服务器不是 RoR。
你有什么解决这个问题的想法吗?
"{"data":{"favorite":1},"registration_ids":["1","2","3","4","5","6"]}"
谷歌的响应是:
{
"multicast_id":7917175795873320166,
"success":6,
"failure":0,
"canonical_ids":4,
"results":[
{"registration_id":"3","message_id":"m1"},
{"message_id":"m1"},
{"message_id":"m1"},
{"registration_id":"3","message_id":"m1"},
{"registration_id":"3","message_id":"m1"},
{"registration_id":"3","message_id":"m1"}
]
}
从这可以得出,id 3 是正确的,但我应该用哪些原始 id 替换它呢?把每个已注册的 id 的所有消息都发送一遍是浪费的。我在 Stackoverflow 上读到了一篇文章(GCM 和 id 处理),解决了 Java 服务器的问题,但我的服务器不是 RoR。
你有什么解决这个问题的想法吗?