android应用集成google登录

集成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 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账号的id,name,photourl等信息,至此整个登录过程完成。

最后不要忘了加入网络访问的权限奥~

我写博客有个习惯,就是把每一个步骤都尽量讲的详细,因为在我遇到谷歌登录的时候,搜了一下博客,发现很多博客写的都忽略了一些很重要的过程,比如google-services.json等,所以我就决定写一篇比较详细的介绍集成google登录的文章,以方便初次接触google官方一些东西的接入的习惯和方式,希望能够带给大家一些帮助。

好了,就写到这吧,希望这篇文章对大家有所帮助。

如要转载,请注明出处,谢谢!

欢迎关注我的博客园博客,地址是:

https://www.cnblogs.com/zhengjunfei/

同时欢迎大家关注我的简书博客,地址是:

https:www.jianshu.com/u/da06e00edefa

欢迎大家扫描关注我的微信公众号,我会定期发布一些博客,分享一些知识点。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,279评论 25 709
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 10,139评论 0 26
  • 昨天在去帝都的火车上,看了一本书《爱的五种能力》,其实主要说的是夫妻相处之道,只看了前面一章节,总结概括,爱的五种...
    蜕变的林林阅读 2,593评论 0 2
  • 以前,我对厌恶的人总是很直接。摆臭脸,不理睬,联系方式不是选择拉黑,而是直接删除。 现在觉得,自己真傻。那些私人的...
    七不斯阅读 1,558评论 0 0
  • 模型 时间效率 区间原则 红蓝
    粉色星球阅读 2,707评论 0 0

友情链接更多精彩内容