android应用集成google登录
2017-12-23 11:19
435 查看
集成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官方一些东西的接入的习惯和方式,希望能够带给大家一些帮助。
好了,就写到这吧,希望这篇文章对大家有所帮助。
如要转载,请注明出处,谢谢!
欢迎关注我的博客园博客,地址是:
https://www.cnblogs.com/zhengjunfei/
同时欢迎大家关注我的简书博客,地址是:
https:www.jianshu.com/u/da06e00edefa
欢迎大家扫描关注我的微信公众号,我会定期发布一些博客,分享一些知识点
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官方一些东西的接入的习惯和方式,希望能够带给大家一些帮助。
好了,就写到这吧,希望这篇文章对大家有所帮助。
如要转载,请注明出处,谢谢!
欢迎关注我的博客园博客,地址是:
https://www.cnblogs.com/zhengjunfei/
同时欢迎大家关注我的简书博客,地址是:
https:www.jianshu.com/u/da06e00edefa
欢迎大家扫描关注我的微信公众号,我会定期发布一些博客,分享一些知识点
相关文章推荐
- Google升级Drive SDK,支持Android/iOS应用集成
- Android 应用程序集成Google 登录及二次封装
- Android 应用程序集成Google 登录及二次封装
- 在为应用集成微博第三方登录获取用户信息的时候出现异常com.weibo.sdk.android.WeiboException: {"error":"User does not exists!","er
- 使用Google帐号登录Android应用
- 在Android App中集成Google登录
- Android 应用程序集成Google 登录及二次封装
- 在Android App中集成Google登录
- android应用集成facebook登录
- Android 应用程序集成Google 登录及二次封装
- google第三方登录集成说明(android)
- 在 Web 项目中应用 Apache Shiro 并集成 CAS 单点登录
- Google手机操作系统Android应用开发入门
- [Android开发] 给应用集成移动mm支付出错
- 如何使用Google APIs和Google应用系统集成(7)----在里面JSON兑换XML数据处理,JSON数据包括违规XML数据规范:XML节点名称不支持号码Java解
- Liferay6.2.1 集成 CAS4.0 实现单点登录与应用系统集成
- Android 集成QQ登录
- 踩坑!android端集成QQ第三方登录
- android 微信登录与分享集成