Android Facebook SDK AcccessToken问题

时间:2016-05-30 15:07:42

标签: android facebook-sdk-4.0

我尝试将用户emailAccessToken联系起来Facebook SDK

  1. 如果我使用Graph API Explorer' AccessToken我可以idnameemail并不重要如果我使用浏览器或OkHttp

    "https://graph.facebook.com/" + user_id + "?fields=email,name&access_token=" + access_token_from_graph_explorer

  2. 我得到了这样的回应:

     {
          "email": "mail@com",
          "name": "John Doe",
          "id": "4545"
    }
    

    如果我使用token方法AccessToken.getCurrentAccessToken().getToken(),我email无法获得JSONObject

    1. 使用Graph Explorer我可以看到id。我试图用这种方式提出要求:
    2. "https://graph.facebook.com/me?fields=email,name&access_token="

      和此:

      "https://graph.facebook.com/" + id + "?fields=email,name&access_token="

      在第二个版本中我"Unsupported get request. Object with ID 'xxxxxxxxxxx' does not exist, cannot be loaded due to missing permissions...使用我的id。当我尝试使用另一个id的{​​{1}}时,我仍然没有获得user

      email

      使用此变体我也没有Bundle bundle = new Bundle(); bundle.putString("fields", "email,name"); new GraphRequest( AccessToken.getCurrentAccessToken(), "me", bundle, HttpMethod.GET, new GraphRequest.Callback() { public void onCompleted(GraphResponse response) { System.out.println("data = " + response.toString()); } } ).executeAsync();

      我很困惑。告诉我,我该如何检索用户电子邮件。

      3.登录后我尝试:

      email

      但我没有通过电子邮件看到public void onSuccess(LoginResult loginResult) { System.out.println("succses =" + loginResult.getAccessToken().getToken()); accessToken = loginResult.getAccessToken(); GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject user, GraphResponse graphResponse) { Log.d("TAG", user.optString("email")); Log.d("TAG", user.optString("name")); Log.d("TAG", user.optString("id")); init(); } }).executeAsync(); } 附: TAG中的所有权限均已启用。

1 个答案:

答案 0 :(得分:2)

最高投票的答案对我没有用,电子邮件总是空着。我在Stackoverflow

找到答案
Pankaj
Neeraj