我现在在我的应用程序中添加谷歌登录。但是我得到了来自这个范围scope = "oauth2:" + Scopes.PLUS_LOGIN
的令牌,但是服务器无法通过该令牌获得用户的电子邮件。所以我用一个空格添加了我的范围"https://www.googleapis.com/auth/userinfo.email"。但我只得到一个系统错误。这样的
我完全不明白我需要什么样的许可。这也是我的代码06-19 15:26:33.444 25229-25460/W/System.err:com.google.android.gms.auth.UserRecoverableAuthException:NeedPermission 06-19 15:26:33.445 25229-25460/W/系统。错:com.google.android.gms.auth.GoogleAuthUtil。getToken(未知来源)06-19 15:26:33.447 25229-25460/W/系统。错:com.google.android.gms.auth.GoogleAuthUtil。getToken(未知源)
AsyncTask task = new AsyncTask() {
@Override
protected Object doInBackground(Object... params) {
final String CLIENT_ID = "abc123.apps.googleusercontent.com";
final List<String> SCOPES = Arrays.asList(new String[]{
"https://www.googleapis.com/auth/plus.login",
"https://www.googleapis.com/auth/userinfo.email"
});
try {
String scopes = String.format("oauth2:server:client_id:%s:api_scope:%s", CLIENT_ID , TextUtils.join(" ", SCOPES));
String token = GoogleAuthUtil.getToken(context, Plus.AccountApi.getAccountName(mGoogleApiClient), scopes);
userInfo = new GoogleUserInfo(email, finalPersonPhotoUrl, currentPerson.getId(), token, currentPerson.getDisplayName());`enter code here`
}
catch (UserRecoverableAuthException e) {
// This error is recoverable, so we could fix this
// by displaying the intent to the user.
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
catch (GoogleAuthException e) {
e.printStackTrace();
}
return null;
}
};
task.execute((Void) null);
我怎么能有令牌,可以得到一个用户的电子邮件信息?? ?
我试了很多方法但都不行,所以我收到了这样的邮件
String email = Plus.AccountApi.getAccountName(GoogleApiClient);
和其他用户信息,您可以通过调用Plus.PeopleApi.getCurrentPerson