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

时间:2013-01-09 06:21:42

标签: android .net google-cloud-messaging

我关注了一些演示,并在我的手机中正常工作。但我有一些问题。注册ID是否对应用程序或用户是唯一的?如果它对用户是唯一的,那么如何在服务器(点网)中保存多个regID。请给我一些指导。

4 个答案:

答案 0 :(得分:4)

  

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

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

  

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

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

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" : {
    ...
  },
}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

除此之外,您可以创建所有注册用户的数组,并逐个发送消息给所有用户。

答案 3 :(得分:0)

引自Android docsRegId是:

  

GCM服务器向Android应用程序发出的允许的ID   它接收消息。一旦Android应用程序有了   注册ID,它将它发送到第三方应用服务器,   它使用它来识别已注册接收的每个设备   给定Android应用程序的消息。换句话说,一个   注册ID与运行的特定Android应用程序绑定   一个特定的设备。

因此RegId是应用程序和用户特定的。

存储时,您可以在GCM注册完成后发送帖子。使用Google提供的示例应用,您将获得一些线索。