GCM(谷歌云推送)客户端服务器端开发全指南

Posted bot攻略

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GCM(谷歌云推送)客户端服务器端开发全指南相关的知识,希望对你有一定的参考价值。

由于谷歌云推送GCM升级成为FCM,所以此博客能容仅供参考 ————2016.12.2更新

不知不觉已经有一段时间没有写博客了,也在不知不觉中步入社会一段时间了,其中跌过很多坑,中过很多次招,但却让我发现自己越来越爱IT这个行业了,最近在研究众所周知的GCM(谷歌云推送),发现要熟练使用GCM所必备的技能非常经典和实用,其实很多大大小小的服务都是类似的模式,所以这里想和大家分享一下,以便大家能提升自己。

一开始,你需要一个google开发者账号,点击这里可以去注册
什么!?你打不开?好吧,你应该学习下“科学上网”的方法了,度娘“科学上网”能帮到你。

另外添加一点就是,我发现google最近很多服务都支持简体中文了,难道真的像网上说的那样,google要重回中国市场了吗?期待ing……

好,然我们言归正传:

首先我来说一下GCM开发需要用到的东西:
1.Sender ID 发送者ID;
2.Registration Token 客户端注册令牌;
3.API Key 推送服务器key;

因为开发必须要以上3样东西,所以我计划把文章分成3部分
1.Sender ID、API Key和Registration Token的获取;
2.GCM服务器端的开发;
3.GCM android客户端的开发;

有了个这个系统的计划开发逻辑作为依据,我们就可以先根据GCM的说明再来理清下思路,我们来到GCM首页,开始第一步

————Sender ID、API Key和Registration Token的获取;

首页只是一些概括GCM进行原理的说明,然后我们看到两个按钮“TRY IT ON ANDROID”和”TRY IT ON ios”,没错,GCM支持android同时也支持ios,但是我们今天先不聊ios,直接点击“TRY IT ON ANDROID”去到android开发页面

来到android开发页面发现要竟然是最新版的Android Studio和Google Play Services,而且页面的demo也是Android Studio专属,已经安装了Android Studio和git的朋友可以使用他所给的指令,就可以在github上下载GCM在Android Studio的demo了。但是有些朋友使用的是eclipse,那该怎么办呢?其实碰巧我今天说明的工具也是使用eclipse,eclipse其实用于java的开发是挺方便的,但是项目依赖方面的处理,eclipse的确做的不够好,也难怪google会抛弃它……

我们继续走下去,既然google的demo不支持eclipse了,那要怎么办呢?我们可以以GCM作为一个功能添加到我们项目中的思路去做,点击“add Cloud Message to existing app”,去到“Set up a GCM Client App on Android”页面

在这里google再次强烈推荐你使用Android Studio去开发GCM,可见google决心已定,没什么能阻止他抛弃eclipse了,但我们关注的不在这里,注意看红色框框内容,我简单翻译下:

以下是在Android客户端运行GCM的环境要求”
  • 运行GCM的Android设备版本至少在Android2.2以上以及已经安装有Google Play商城App(也就是我们常说的google三件套),Android模拟器版本必须在Android2.2以上以及使用Google APIs。另外你的App不是必须从Google Play下载的。
  • 最新版的GCM会通过Google Play Services发布,如果你想时刻保持你的GCM是最新的,就安装Google Play Services,设备要求在Android2.3版本以上,模拟器是Android2.3以及使用Google APIs。
  • GCM使用已有的链接来链接Google services,但在Android3.0以下的版本需要用户自己在手机上登录Google账号才行,而Android4.0.4以上则不需要
    (以上内容纯自翻,有问题请指出)

看到这里估计也明白了,如果的面向的客户没有安装Google三件套,GCM是发挥不了作用的,而且在目前来看,应为“墙”的问题,GCM在国内也无效,但是也正因为这样,国内的第三发推送服务像百度云推送,极光推送才能发展得这么快,这么稳健。这是托方老师的福吧,哈哈。

所以,如果你是商用开发的话,面向的客户最好是海外的,像楼主那样,如果面向国内,还是用国内流行的推送方式好。

ok,闲话说到这,我们继续,向下滑动,滑到一个Get a coufiguration file的模块那里,这里是Android Studio获取GCM配置文件的地方,虽然我们不需要用到配置文件,但是还是要设置些属性的,点进去

一进来他第一时间就弹出个窗口叫你Create or choose an app和选择App name,这时我们还没有创建App Project,另外打开一个窗口,登录到Google开发者控制台

刚登录进来他就会叫你新建一个Project

我们就新建为GCMTest吧,点击Create。

创建好后来到Home页面

注意,GCM开发第一个ID————Sender ID就在这里了。

Project number就是以后你开发要使用到的Sender ID。

然后谷歌的推送服务还要手动打开,我们点击Enable and manage APIs。

然后我们就来到APIs控制台,找到我们需要启动的服务 Google Cloud Messaging 服务,点击进去

然后点击Enable来启动服务

启动好后他会叫你创建Credentials(认证key),这个Credentials就是在之前那个你Create or choose an app和选择App name的页面进行创建的,因为手动创建关联的信息较多,稍有差错就会导致推送无效,所以这里可以借用google创建配置文件的功能来创建我们的Credentials,回到刚才的页面,选择App name(没有的就刷新一下)选择好你创建的Project,然后接下来就是重中之重了————输入包名,这里的包名必须跟你的App包名一致,如果不是100%推送失败

输好后就点击“choose and configure services”就能创建一个配置文件了,然后点击启动谷歌云消息按钮,弹出这个

你的Credentials就创建成功了

然后你再回到google开发者控制台那里看一下,就会看到你的server key被创建成功了

好了,到这里我们Sender ID和 API Key都到手了,而Registration Token是必须从Android设备上去获取的,所以Registration Token的获取我们留到客户端开发的时候再讲,感谢您的耐心阅读。

以上是关于GCM(谷歌云推送)客户端服务器端开发全指南的主要内容,如果未能解决你的问题,请参考以下文章

GCM(谷歌云推送)客户端服务器端开发全指南

GCM(谷歌云推送)客户端服务器端开发全指南(客户端)

GCM(谷歌云推送)客户端服务器端开发全指南(客户端)

GCM(谷歌云推送)客户端服务器端开发全指南(服务器篇)

GCM(谷歌云推送)客户端服务器端开发全指南(服务器篇)

如何使用谷歌云连接服务器发送上游 GCM 消息