我正在尝试向某些 android 设备发送推送更新。他们中的一些人同时有了一个新的 id,所以我谷歌告诉我有规范的 id。从我阅读的文档中:
如果设置了 message_id,请检查 registration_id:
- 如果设置了registration_id,则将原始ID 替换为服务器数据库中的新值(规范ID)。注意原始ID不是结果的一部分,所以需要从请求中传入的registration_ids列表中获取(使用相同的索引)。
我是否遗漏了一部分,或者如果您向 Google 发送超过 1 个注册 ID,这是否含糊不清?
我的要求(替换 id 以提高可读性):
"{"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 是正确的,但我应该用 3 替换哪些原始 id?为每个注册的 id 发送每条消息将是一种浪费。我在这里阅读了一篇关于 Stackoverflow(GCM 和 id 处理)的帖子,为 Java 服务器解决了它,但我的不是(RoR)。
关于如何解决这个问题的任何想法?