【发布时间】:2012-12-19 17:44:17
【问题描述】:
我正在尝试向某些 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 是正确的,但我应该将哪些原始 id 替换为 3?为每个注册的 id 发送每条消息将是一种浪费。我在 Stackoverflow (GCM and id handling) 上阅读了一篇文章,为 Java 服务器解决了这个问题,但我的不是 (RoR)。
关于如何解决这个问题的任何想法?
【问题讨论】:
标签: android push-notification google-cloud-messaging