我在我的应用程序中添加了 Google+ 登录,一旦我有了帐户名,我想通过这种方式获取基本的用户个人资料信息:
URL url = new URL("https://www.googleapis.com/oauth2/v1/userinfo");
//get Access Token with Scopes.PLUS_PROFILE
String sAccessToken = GoogleAuthUtil.getToken(mActivity.this,
mPlusClient.getAccountName() + "",
"oauth2:" + Scopes.PLUS_PROFILE
+ " https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email");
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestProperty("Authorization", "Bearer "
+ sAccessToken);
BufferedReader r = new BufferedReader(new InputStreamReader(
urlConnection.getInputStream(), "UTF-8"));
StringBuilder total = new StringBuilder();
String line;
while ((line = r.readLine()) != null) {
total.append(line);
}
line = total.toString();
它通常会给我这些细节:
“id” “email” “give_name” “family_name” “name” “link” “verified_email” “gender” “locale” “picture”
但是在测试时,我使用firstName
和创建了一个新的 Google 帐户LastName
。它已显示在我的 Google+ 帐户上。
但是,当我使用此帐户名为用户信息调用相同的 API 时,我得到:
{“id”:“xxxxxxxxxxxxxxxxxxxxxxxx”,“email”:“xxxxxx@gmail.com”,“verified_email”:true,“locale”:“en”}
与名字无关。
这种情况有什么解决办法吗?
谢谢你