3

我关注了一些演示,它在我的手机上运行良好。但我有一些问题。注册 ID 对应用程序或用户来说是唯一的吗?如果它对用户来说是唯一的,那么如何在服务器(点网)中保存多个 regID。请给我一些指导。

4

4 回答 4

4

如果它对用户来说是唯一的,那么如何在服务器(点网)中保存多个 regID。请给我一些指导。

当设备向 GCM 服务器注册时,设备必须将该唯一 ID 发送到您的服务器,然后您保存该值以发送消息。

如何使用 GCM 向多个用户发送推送通知?

您使用格式创建消息。对于多个 ID,只需将您的用户 ID 以数组对象的形式registration_ids填写在key中即可

python中的示例:

ids=[]
query= // get all user record from database
for q in query:
    ids.append(q.registration_id)
// some code
jsonmessage=json.dumps({
    "registration_ids":ids,
    "data":{
        "message":message,
        "time":datetime.datetime.today().isoformat(),
        "sender":sender
     }
})
conn.send(jsonmessage)

看起来像这样:

Content-Type:application/json
Authorization:key=AIzaSyB-1uEai2WiUapxCs2Q0GZYzPu7Udno5aA
{
  "registration_ids" : ["APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...", "second_id", "third_id"],
  "data" : {
    ...
  },
}
于 2013-01-09T08:19:40.760 回答
0

引用自Android docs, aRegId是:

GCM 服务器发给 Android 应用程序的 ID,允许其接收消息。一旦 Android 应用程序获得了注册 ID,它就会将其发送到第 3 方应用程序服务器,该服务器使用它来识别已注册以接收给定 Android 应用程序消息的每个设备。换句话说,注册 ID 与运行在特定设备上的特定 Android 应用程序相关联。

所以 aRegId是特定于应用程序和用户的。

对于存储,您可以在 GCM 注册完成后发送 Post。使用谷歌提供的示例应用程序,你会得到一些线索。

于 2013-01-09T06:32:23.653 回答
0

是的,注册 ID 对于特定应用程序的特定用户是唯一的。您可以创建数据库并将它们全部存储

于 2013-01-09T06:29:06.647 回答
0

您可以一次向多达 1000 个用户发送多案例消息。请参阅 Google 的指南:

http://developer.android.com/training/cloudsync/gcm.html

除此之外,您可以将所有注册用户组成一个数组,并一个接一个地向他们发送消息。

于 2013-01-09T06:31:17.620 回答