GoogleSignIn.requestPermissions返回一个无效帐户

时间:2019-06-27 03:54:17

标签: google-signin

我使用GoogleSignIn访问Google Photos API和管理OAuth。

使用startActivityForResult获取有效的帐户, 当我致电GoogleSignIn.requestPermissions时, 然后,先前的有效帐户将变为无效(account.object不再包含电子邮件)。返回的帐户具有允许的权限。

我使用GoogleSignIn.getLastSignedInAccount检索授予的帐户。

GoogleSignIn.requestPermissions(
                    MainActivity.this,
                    RC_AUTHORIZE_PHOTOS,
                    GoogleSignIn.getLastSignedInAccount(MainActivity.this),
                    new Scope("https://www.googleapis.com/auth/photoslibrary.readonly"));

然后

GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(getApplicationContext());

使用account.getAccount == null返回一个帐户

1 个答案:

答案 0 :(得分:0)

作为一种解决方法,我在调用signIn时调用requestPermissions。结果,getLastSignedInAccount总是正确的。

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestScopes(new Scope(Scopes.EMAIL), SCOPE_PHOTOS_READ)
            .build();
GoogleSignInClient mGoogleSignInClient = GoogleSignIn.getClient(activity, gso);
Intent signInIntent = mGoogleSignInClient.getSignInIntent();
activity.startActivityForResult(signInIntent, MainActivity.RC_SIGN_IN);