我关注了一些演示,它在我的手机上运行良好。但我有一些问题。注册 ID 对应用程序或用户来说是唯一的吗?如果它对用户来说是唯一的,那么如何在服务器(点网)中保存多个 regID。请给我一些指导。
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" : {
...
},
}
引用自Android docs, aRegId
是:
GCM 服务器发给 Android 应用程序的 ID,允许其接收消息。一旦 Android 应用程序获得了注册 ID,它就会将其发送到第 3 方应用程序服务器,该服务器使用它来识别已注册以接收给定 Android 应用程序消息的每个设备。换句话说,注册 ID 与运行在特定设备上的特定 Android 应用程序相关联。
所以 aRegId
是特定于应用程序和用户的。
对于存储,您可以在 GCM 注册完成后发送 Post。使用谷歌提供的示例应用程序,你会得到一些线索。
是的,注册 ID 对于特定应用程序的特定用户是唯一的。您可以创建数据库并将它们全部存储
您可以一次向多达 1000 个用户发送多案例消息。请参阅 Google 的指南:
http://developer.android.com/training/cloudsync/gcm.html
除此之外,您可以将所有注册用户组成一个数组,并一个接一个地向他们发送消息。