1.由于使用uni.login登录谷歌无返回token
- 改为使用下面的方法、但是返回值依旧为空
//初始化
var mainActivity = plus.android.runtimeMainActivity();
var GoogleSignInOptions = plus.android.importClass("com.google.android.gms.auth.api.signin.GoogleSignInOptions");
var gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken('web_client_id')
.requestServerAuthCode('web_client_id')
.requestEmail()
.requestProfile()
.build();
//创建GoogleClient
var GoogleSignIn = plus.android.importClass("com.google.android.gms.auth.api.signin.GoogleSignIn");
var mGoogleClient = GoogleSignIn.getClient(mainActivity,gso)
var signInIntent =plus.android.invoke(mGoogleClient,'getSignInIntent')
//跳转登录
var CODE_REQUEST = 200;
mainActivity.startActivityForResult(signInIntent, CODE_REQUEST);
//获取登录回调
mainActivity.onActivityResult = function(requestCode, resultCode, data) {
if (requestCode==CODE_REQUEST){
var GoogleSignIn = plus.android.importClass("com.google.android.gms.auth.api.signin.GoogleSignIn");
var account = new GoogleSignIn().getLastSignedInAccount(mainActivity)
console.log(plus.android.invoke(account,'getId'),'===','unionid,openid')
console.log(plus.android.invoke(account,'getEmail'),'===','email')
console.log(plus.android.invoke(account,'getDisplayName'),'===','nickname')
console.log(plus.android.invoke(account,'getIdToken'),'===','idToken')
console.log(plus.android.invoke(account,'getServerAuthCode'),'===','code,这个是关键code,传递到服务端换access_token令牌')
console.log((plus.android.invoke(account,'getPhotoUrl')||'').toString(),'===','avatarUrl')
}
}
1 个回复
1***@qq.com
解决了嘛