我们正在创建移动设备管理解决方案。我们希望使用Google云消息传递(GCM)服务来推送来自服务器的通知。
要使用GCM,我们需要创建一个Google API控制台项目并启用GCM服务。此外,我们需要在此API控制台项目中创建服务器密钥(API密钥),稍后将其用于向GCM验证服务器。所有客户端应用程序都使用SenderID注册到GCM(创建项目后立即生成)。
问题: 对于每个客户,我们需要创建一个Google帐户来提供GCM功能(不确定是否有其他方法)。我们需要自动执行上述流程(创建Google帐户,创建Google API控制台项目,启用服务,创建服务器密钥等)。换句话说,客户不应该看到任何正在发生的事情。
我试过寻找几天,我无法获得太多信息。 1.我们可以自动化这个过程吗? 2.如果不是,我们是否需要从谷歌购买任何许可证来实现这一目标?
我能实现这一目标(为所有客户启用GCM)吗?
注意:这是我的第一个问题。如果有任何错误,请道歉。
答案 0 :(得分:0)
这种自动化是没有必要的(谷歌当然不需要)。根据您的需要,您只需在一个项目中在控制台上创建一个键。
您的客户首次启动应用时会向GCM注册,这会为他们提供唯一的(每个应用和每个设备)密钥(regID)。
每次向他们发送消息(下游)时,都会指定他们指定此regID。每当您的应用发送消息时,GCM客户端都会自动添加regID,以便您的服务器知道发送的是谁。
更确切地说:
您有几个客户端(由clientID
标识),已安装基于tomcat的服务器(客户端服务器)。
每个客户端都有多个用户,由userID
标识(在UI上输入等)。此用户知道他们所属的clientID。这对夫妇的userID / clientID在下面的中央服务器上是唯一的。
您还有一个central server
,连接到GCM / CCS,由数据库支持,在用户和关联的客户端服务器之间转发消息。
当设备注册时,它从GCM获取regID,并将其userID和关联的clientID(通过http或xmpp)发送到存储它的中央服务器,并将其发送到正确的客户端服务器。上游后续消息的工作方式相同:您的消息节包含userID,它允许查询支持中央服务器的DB以获取clientID,从而将消息转发到正确的客户端服务器。
由客户端发起的下游向您的中央服务器发送包含操作和相关数据的消息,从userID检查用户是否真正属于发送客户端,获取regID,并将其发送到正确的设备。 / p>
在此建议的架构中,您在Google控制台上拥有一个键/项目,以及多组用户,每组都由自己的服务器管理。