Android - 如何获得 google plus 访问令牌?

问题描述:

您好,我在不使用 OAuth 2.0 客户端 ID 和范围的情况下获得了 google plus 访问令牌.但是使用此访问令牌不会获取电子邮件地址.如何获取用户电子邮件地址?

Hello i am getting google plus access token without using OAuth 2.0 client ID with scopes. But with this access token does not fetch email address. How to fetch user email address?

带和不带 OAuth 2.0 客户端 ID 的访问令牌有什么区别?

Is there any difference between accesstoken with and without OAuth 2.0 client ID?

我使用了以下代码,

String accessToken="";
                    try {
                        accessToken = GoogleAuthUtil.getToken(
                                getApplicationContext(),
                                mPlusClient.getAccountName(), "oauth2:"
                                        + Scopes.PLUS_LOGIN + " "
                                        + Scopes.PLUS_PROFILE);

                        System.out.println("Access token==" + accessToken);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }

String accessToken = "";
try {
  URL url = new URL("https://www.googleapis.com/oauth2/v1/userinfo");
  // get Access Token with Scopes.PLUS_PROFILE
  String sAccessToken;
  sAccessToken = GoogleAuthUtil.getToken(
    LoginCheckActivity.this,
    mPlusClient.getAccountName() + "",
    "oauth2:"
      + Scopes.PLUS_PROFILE + " "
      + "https://www.googleapis.com/auth/plus.login" + " "
      + "https://www.googleapis.com/auth/plus.profile.emails.read");
} catch (UserRecoverableAuthException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();                  
  Intent recover = e.getIntent();
  startActivityForResult(recover, 125);
  return "";
} catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
} catch (GoogleAuthException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
}