2013-01-09 126 views
3

我跟随了一些演示,并且在我的手机中正常工作。但我有一些问题。注册ID对于应用程序或用户是唯一的吗?如果它对用户是唯一的,那么如何在服务器中保存多个REGID(点网)。请给我一些指导。如何使用GCM向多个用户发送推送通知

+0

是注册id对每个用户都是唯一的。对于发送推送通知,您需要用户的唯一ID,以便您可以发送给特定的最终用户或所有用户。无论如何,您需要将注册ID存储在某个数据库或文件中。 – arnp

+0

感谢您的回复。你能解释一下如何从GCM服务器上将我们的服务器的regID发送给我们吗? – user1842744

+1

字符串regId = GCMRegistrar。getRegistrationId(本); – arnp

回答

4

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

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

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

您使用格式创建消息。对于多个ID,只需填写与你的用户ID的registration_ids键数组对象

例在蟒蛇的形式:

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

感谢答复...我将尝试DIS和更新很快ü。 – user1842744

+0

@Zyoo - 是有可能发送不同的消息给多个用户使用单一的请求(注册ID的数组)? – rafi

+0

@rafi,据我所知,如果你想发送不同的信息,你应该使用不同的请求 – Zyoo

0

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

0

您可以一次向多达1000个用户发送多数据消息。见谷歌的指南:

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

除此之外,你可以让所有注册用户的数组,并分别发送消息给所有的人一个接一个。

+0

如何保存或获取regId到我的服务器? – user1842744

+0

如果您正在遵循示例,那么regID已经在您的服务器中。如果他们不是,你将无法发送推送消息。现在访问它们 - 这取决于你的数据库结构。您需要检查数据库,找出存储的REGID的位置,并编写访问它们的方法。 –

+0

是什么让谷歌服务器获得REGID到我们的服务器? – user1842744

0

Android docs引用,一个RegId是:

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

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

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

+0

需要什么样的方法来调用或在我们的服务器中保存多个REGID? – user1842744

+0

你可以从Android的导入示例应用程序,或者[这里](http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql /) – Aprian