集成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官方一些东西的接入的习惯和方式,希望能够带给大家一些帮助。
    
      好了,就写到这吧,希望这篇文章对大家有所帮助。
 
  如要转载,请注明出处,谢谢!
 
  欢迎关注我的博客园博客,地址是:
 
 
  欢迎大家扫码关注我的微信公众号,我会定期发布一些博客,分享一些知识点。
 
  

android应用集成google登录的更多相关文章

  1. Android 应用程序集成Google 登录及二次封装

    谷歌登录API:  https://developers.google.com/identity/sign-in/android/ 1.注册并且登录google网站 https://accounts. ...

  2. ShareSDK 集成 Google+ 登录 400. Error:redirect_uri_mismatch 和 Error Domain=ShareSDKErrorDomain Code=204

    最近在集成ShareSDK中 Google+ 登录授权时候 出现了如下几个问题 1.    400.  Error:redirect_uri_mismatch 出现这种情况, redirectUri应 ...

  3. 在Android App中集成Google登录

    技术文章 来源:码农网 发布:2016-09-19 浏览:194 摘要:今天,几乎所有的web和移动app都自带谷歌和Facebook登录,这对app开发者和用户来说是一个非常有用的功能,因为几乎每个 ...

  4. android应用集成facebook登录

      之前都是做国内的应用开发,没有用过国外的三方登录,比如谷歌登录.facebok登录,最近参与了一个海外的支付相关的项目,调研了一下谷歌登录和facebook登录,其实调研之后觉得也是很简单的,尤其 ...

  5. android studio 集成微信登录

    参考: 1.http://blog.csdn.net/suma_sun/article/details/50752528 2.这个更全面一点 : http://www.jb51.net/article ...

  6. Android集成Google地图详细步骤记录

    先贴下Google官方的地图demo地址:https://github.com/googlemaps/android-samples 那么接下来第一步,申请Google的API key. 使用谷歌账号 ...

  7. php的laravel框架快速集成微信登录

    最终的解决方案是:https://github.com/liuyunzhuge/php_weixin_provider,详细的介绍请往下阅读. 本文面向的是php语言laravel框架的用户,介绍的是 ...

  8. Android App集成支付宝

    原地址:http://blog.csdn.net/wenbingoon/article/details/7933078 手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统 ...

  9. Asp.net MVC集成Google Calendar API(附Demo源码)

    Asp.net MVC集成Google Calendar API(附Demo源码) Google Calendar是非常方便的日程管理应用,很多人都非常熟悉.Google的应用在国内不稳定,但是在国外 ...

随机推荐

  1. AngularJS学习篇(十七)

    AngularJS 输入验证 <!DOCTYPE html> <html> <script src="http://apps.bdimg.com/libs/an ...

  2. Linux双网卡绑定实现负载均衡

    系统环境:CentOS release 6.9 (Final) Linux centos6 2.6.32-696.10.1.el6.x86_64 Ubuntu系统下使用ifenslave进行网卡配置, ...

  3. SQL SERVER 2012设置自动备份数据库

    为了防止数据丢失,这里给大家介绍SQL SERVER2012数据自动备份的方法: 一.打开SQL SERVER 2012,如图所示: 服务器类型:数据库引擎: 服务器名称:127.0.0.1(本地), ...

  4. Spring Security 4 新增特性

    1.概述 a) 特性 以下是Spring Security 4.0的新特性 Web Socket 支持 测试支持 整合Spring Data CSRF令牌参数解析 更安全的默认设置 role权限不再必 ...

  5. 翻译连载 | 第 11 章:融会贯通 -《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇

    原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS>作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTM ...

  6. chrony软件使用说明

    1.1.1 chrony简介 Chrony是一个开源的自由软件,它能保持系统时钟与时钟服务器(NTP)同步,让时间保持精确. 它由两个程序组成:chronyd和chronyc. chronyd是一个后 ...

  7. WPF 完美截图 <二>

    根据WPF 完美截图 <一>总结: 1.BitmapSource与BitmapImage及CorppedBitmap之间的转换 2.中心及边角的模板实现及其拖动 3.除了拖动矩形外区域要实 ...

  8. OpenTSDB - 分布式可扩展的监控系统

    OpenTSDB - A Distributed, Scalable Monitoring System http://opentsdb.net/getting-started.html http:/ ...

  9. Ajax跨域 CROS处理

    Ajax跨域方法有多种 这里介绍CROS跨域的实际案例 场景:A域名 请求 B域名: 暂且 A为客户端 B为服务端: 请求的服务端必须自己能控制 或者服务器端头部已经添加 Access-Control ...

  10. JavaScript 系统知识点图库

    JavaScript 是世界上最流行的,轻量级的编程语言. 这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备: JavaScript 被数百万计的网 ...