时间:2021-05-21
前言
公司做海外产品的,集成的是 google 账号登录,账号信息、邮箱等这些不涉及隐私的按 google 的正常登录流程可以轻松实现 。但是一旦需要获取涉及隐私的信息就比较麻烦,文档也不是十分清晰,非常难找,很多坑。
google 账号登录
官方链接:https://developers.google.com/identity/sign-in/android/start
https://developers.google.com/identity/sign-in/android/sign-in
google 账号登录接入的坑:
google 登录的流程在这个文档写的比较清楚了:https://developers.google.com/identity/sign-in/android/sign-in,这里大致说一下,不贴代码了
构建需求请求的内容:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestEmail() .requestIdToken("your client_id") .build();// Build a GoogleSignInClient with the options specified by gso.mGoogleSignInClient = GoogleSignIn.getClient(this, gso);2.发起登录请求,跳转 google 登录页面。
Intent signInIntent = mGoogleSignInClient.getSignInIntent(); startActivityForResult(signInIntent, RC_SIGN_IN);获取 Google 登录返回
@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...); if (requestCode == RC_SIGN_IN) { // The Task returned from this call is always completed, no need to attach // a listener. Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data); handleSignInResult(task); }}获取 用户 id token,传到你自己的 服务端 做验证
private void handleSignInResult(Task<GoogleSignInAccount> completedTask) { try { GoogleSignInAccount account = completedTask.getResult(ApiException.class); // Signed in successfully, show authenticated UI. } catch (ApiException e) { // The ApiException status code indicates the detailed failure reason. // Please refer to the GoogleSignInStatusCodes class reference for more information. Log.w(TAG, "signInResult:failed code=" + e.getStatusCode()); }}切换账号
/** * 重新获取账号列表 */ public void revokeAccess() { try { if (mGoogleSignInClient!=null && mActivity!=null){ mGoogleSignInClient.revokeAccess().addOnCompleteListener(mActivity, new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { Log.d(TAG, "onComplete: "); } }); } } catch (Exception e){ e.printStackTrace(); } }获取公开资料和需要特别授权的信息(性别、生日等)
1、在构建请求是新增获取 的公共资料信息 及 需要获取的特殊信息
private static final String GENDER_SCOPE = "https:///people/api/rest/v1/people/get总结
到此这篇关于Android 集成 google 登录并获取 性别等隐私信息的文章就介绍到这了,更多相关Android 集成 google 登录并获取 性别等隐私信息内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
为大家分享一些android公共方法native.js实现代代码,如获取手机MAC地址,手机内存大小,手机存储空间大小,手机CPU信息等手机硬件基本信息nati
Android获取屏幕尺寸实例代码实现代码:/*****使Android程序支持了多种分辨率*/intmWidthScreen,mHeightScreen;Di
Android实现获取手机里面的所有图片详解及实例实现代码:publicclassMainActivityextendsActivity{//查看图片按钮pri
Android实现截屏功能的实例实现代码:publicclassScreenShot{//获取指定Activity的截屏,保存到png文件privatestat
Android打开相册选择单张图片实现代码以下就是如何在应用中打开图库并选择一张图片进行应用,代码很简单,注释很详细。实现代码:btn8.setOnClickL