集成google登录之前需要有一下三点要求,只有具备一下两点要求才能集成google登录:
        1,android 运行版本4.0及更新版本
        2,android 设备支持谷歌服务
    准备工作
    首先得在谷歌开发者后台上面创建一个自己的项目,网址:https://console.developers.google.com
    
    
    点击“Credentials”选择“OAuth Client ID”创建一个名为LoginSimpleDemo的项目:
    
    
    接下来如1所示,选择“Android Learn More”:
    
    
    上面会出来让填写name和SHA-1的地方,在这里如3所示获取SHA-1的方法是用命令直接获取,但是我的用命令获取的时候会出现错误,错误如下所示:
    
    其实还有另外一种方法获取,就是在android studio中获取(如下图):
        1,选择android如1
        2,选中Gradle Scripts
        3,打开Gradle
        4,点击sync同步按钮,同步一下
        5,双击Tasks->android下面的signingReport
        6,双击之后就会生成SHA-1,在下图6处
    
    
    把SHA-1值填上之后,点击create:
    
    之后Tab选择“OAuth agree screen”, 之后填入你的邮箱还有project名称,之后点击“Save”(PS:Project中不能含有google,否则会报错):
    
    
    在下面这个网址中下载google-services.json文件,网址: https://developers.google.com/identity/sign-in/android/start-integrating?authuser=0 , 点击 按钮“GET A CONFIGURATION FILE”,进入到获取gson文件的页面,
    
    
    分别选中自己创建的app name和package name, 然后点击下面的按钮:
    
    
    然后选中sign in模块,如下图,之后点击按钮2:
    
    
    就进入了下载google-services.json文件的页面了,点击下载即可,下载下来之后放到你的project下面的app的根目录下面如下图:
    
    
    好了,准备阶段结束了,是不是感觉还是挺麻烦的,其实只要流程都看明白了,回过头来梳理其实也没那么麻烦,下面是真正的集成阶段了,其实集成阶段很简单,因为代码量很少;
    
    集成
    首先需创建一个GoogleApiClient对象:
        private GoogleApiClient mGoogleApiClient;
    之后初始化:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)

.requestId()

.requestProfile()

.requestEmail()

.build();

mGoogleApiClient = new GoogleApiClient.Builder(this)

.enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener(){

@Override

public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {

}

})

.addApi(Auth.GOOGLE_SIGN_IN_API, gso)

.build();

    之后就是登录发起:
    
    Intent intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
    startActivityForResult(intent, RC_SIGN_IN);  //RC_SIGN_IN是requestcode
    
    在onActivityResult中拦获取登录的回调:
    
    GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        handleSignInResult(result);
    
    在登录回调中可以获取用户的google账号的id,name,photourl等信息,至此整个登录过程完成。

  /**
    * Google plus 登陆回调
    */
  private void handleSignInResult(GoogleSignInResult result) {
    Log.i(TAG, "handleSignInResult----" + result.isSuccess());
    if (result.isSuccess()) {
      GoogleSignInAccount account = result.getSignInAccount();
      Log.i(TAG, "id--------" + account.getId() + "----name----" + account.getDisplayName() + "---photo--" + account.getPhotoUrl());
    }
  }

      最后不要忘了加入网络访问的权限奥~
    
      我写博客有个习惯,就是把每一个步骤都尽量讲的详细,因为在我遇到谷歌登录的时候,搜了一下博客,发现很多博客写的都忽略了一些很重要的过程,比如google-services.json等,所以我就决定写一篇比较详细的介绍集成google登录的文章,以方便初次接触google官方一些东西的接入的习惯和方式,希望能够带给大家一些帮助。
    
      好了,就写到这吧,希望这篇文章对大家有所帮助。
 
  如要转载,请注明出处,谢谢!
 
  欢迎关注我的博客园博客,地址是:
 
 
  欢迎大家扫码关注我的微信公众号,我会定期发布一些博客,分享一些知识点。
 
  

最新文章

  1. XMPP学习——2、用户登录
  2. Java基础之扩展GUI——显示About对话框(Sketcher 2 displaying an About dialog)
  3. CSS类选择器和ID选择器
  4. linux安装桌面环境(GNOME)VNC连接Linux
  5. ASP.NET MVC 教程
  6. Java中的多线程总结(转)
  7. hdu 1331 Function Run Fun
  8. Cppcheck软件使用
  9. MarkDown入门指南
  10. JS Cookie丢失问题
  11. 超小Web手势库AlloyFinger原理(转载)
  12. Coalesce (MS SQL Server)——取指定内容(列)中第一个不为空的值
  13. javascript OOP实例—探测器
  14. git 修改文件夹名字后如何提交
  15. spring学习 十八 spring的声明事物
  16. HDU5033 building 单调栈+计算几何
  17. bzoj4466 超立方体
  18. 【SQLSERVER】服务挂起解决办法
  19. LG3960 列队
  20. Linux安装python

热门文章

  1. IdentityServer4实现Token认证登录以及权限控制
  2. npminstall无法安装node-sass
  3. Display 和Visible 区别
  4. php缓存模块apc可能导致php-fpm终止
  5. 第一章 Linux系统介绍与环境搭建准备
  6. [转载] 高性能IO模型浅析
  7. 使用apache进行域名绑定
  8. 网页如何展示PPT文档
  9. CSS样式命名整理(非原创)
  10. 老男孩最新Python全栈开发视频教程(92天全)重点内容梳理笔记 看完就是全栈开发工程师