我需要获取google + signIn tokenId。Google signIn tokenId is invalid_token
这里是我的代码:
var mGSO = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(WEB_CLIENT_ID)//from developer console
.requestEmail()
.build()
mGoogleApiClient = GoogleApiClient.Builder(mActivity)
.enableAutoManage(mActivity, this)
.addApi(Auth.GOOGLE_SIGN_IN_API, mGSO)
.build()
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
val result = Auth.GoogleSignInApi.getSignInResultFromIntent(data)
var tokenId = result.signInAccount.idToken
}
所以我顺利拿到tokenId,但是当我尝试点击此处查看(https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=)我收到消息:
{
"error": "invalid_token",
"error_description": "Invalid Value"
}
每次令牌相同的I尝试获得它! 发生了什么? 任何想法如何解决这个问题?
UPDATE
发现这个问题:https://github.com/PhilipGarnero/django-rest-framework-social-oauth2/issues/61
我用的是从我的登录iOS上的错误谷歌令牌。我 最初使用user.authentication.idToken这是错误的,并且 不起作用。
正确的标记是user.authentication.accessToken。
,但我不能找到GoogleSignInResult对象的任何类似的accessToken ....
更新2
我使用调试APK。 这里是我的按钮,单击代码:
fun onGooglePlusClicked(v: View) {
val signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient)
mActivity?.startActivityForResult(signInIntent, GOOGLE_SIGN_IN)
}
您是否使用Firebase身份验证登录 – Nithinlal
否,仅限Google +登录 –
请确保该文件位于正确位置的google-services.json中。那么在应用程序文件夹 – Nithinlal