背景:
Android 需要用到Google的登录授权,用去token给到服务器,服务器再通过token去获取用户信息,实现第三方登录。
我们通过登录之后的email来获取token,不需要server_clientId;如果用server_clientId还需要在google的控制台配置测试的账号,否则登录的时候会返回错误码10.
实现步骤:
1、 手机或者Pad连接可以访问google的网络
2、最外层的build.gradle增加依赖
dependencies { classpath 'com.google.gms:google-services:4.3.15' }
app下的build.gradle增加依赖
implementation 'com.google.android.gms:play-services-auth:20.6.0'
3、初始化谷歌服务
val googleSignInOptions = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail() .build()
//这里不要调用requestIdToken
mGoogleSignInClient = GoogleSignIn.getClient(activity, googleSignInOptions)
4、检查google 服务器是否可用,手机是否有环境
val isGooglePlayServicesAvailable= GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(activity)
5、如果没有环境,返回,流程结束
if (isGooglePlayServicesAvailable!= ConnectionResult.SUCCESS) { // 验证是否已在此设备上安装并启用Google Play服务,以及此设备上安装的旧版本是否为此客户端所需的版本 GoogleApiAvailability.getInstance().makeGooglePlayServicesAvailable(activity) return@launchIO }
6、如果有环境,调用google的登录,调转到第三方app文章来源:https://www.toymoban.com/news/detail-787407.html
val signInIntent: Intent = mGoogleSignInClient!!.signInIntent activity.startActivityForResult( signInIntent, 100 )
7、重写Activity的这个方法,然后获取token文章来源地址https://www.toymoban.com/news/detail-787407.html
fun onActivityResult(requestCode: Int, data: Intent?) { if (requestCode == 100) {
val completedTask: Task<GoogleSignInAccount> = GoogleSignIn.getSignedInAccountFromIntent(data) val account: GoogleSignInAccount = completedTask.getResult(ApiException::class.java) val status: Task<GoogleSignInAccount> = completedTask if (!status.isSuccessful) { throw Exception(status.exception) }
Log.d("测试", "account.email: " + account.email) var loginGoogleRequest = LoginGoogleRequest() loginGoogleRequest.bizId = CoreConstant.bizId // Obtain token for access gmail account var token: String = GoogleAuthUtil.getToken( CoreVariable.coreApplication, account.email!!, "oauth2:profile email" )Log.d("测试", "token= " + token) }
到了这里,关于Android Google登录并获取token(亲测有效)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!