我正在实施谷歌标志,但我来到这个方法,这已被弃用显示它始终返回空值
String token = GoogleAuthUtil.getToken(loginActivity, accountName, scopes);
即使我使用其他方法
String token = GoogleAuthUtil.getToken(loginActivity, accountName, scopes, null);
但它仍然返回null并显示为不推荐使用。请帮助我如何获得访问令牌
答案 0 :(得分:3)
在下面的getToken
方法中,我认为您传递的是accountName
,这是一个字符串值。
String token = GoogleAuthUtil.getToken(loginActivity, accountName, scopes);
String token = GoogleAuthUtil.getToken(loginActivity, accountName, scopes, null);
因此它仍将返回已弃用的方法getToken
。
在传递之前将字符串转换为帐户,如下所述将有助于`:
Account accountDetails = new Account(accountName, GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
String token = GoogleAuthUtil.getToken(loginActivity, accountDetails, scopes);
希望这有帮助。
答案 1 :(得分:-1)
Google登录后,在onActivityResult(...)中,您可以从用户帐户访问tocken。它对我有用。
private static final int RC_SIGN_IN = 9001;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
GoogleSignInAccount acct = result.getSignInAccount();
String personEmail = acct.getEmail();
String accessToken = acct.getIdToken();
}
}
}