2016-03-29 45 views
0

我正在嘗試從Facebook獲取用戶的當前國家/地區。我能夠獲取像電子郵件,身份證,姓氏,名字等數據,但是當涉及到國家我找不到正確的代碼。有人可以告訴我所需的權限以及如何從對象中獲取數據。從Facebook獲取用戶國家

目前,這些是我的權限

loginButton.setReadPermissions(Arrays.asList("public_profile", "email"));

而且我取這樣

loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      GraphRequest graphRequest = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { 
       @Override 
       public void onCompleted(JSONObject object, GraphResponse response) { 
        Log.d("JSON", "" + response.getJSONObject().toString()); 
        try { 
         name = object.getString("name"); 
         first_name = object.optString("first_name"); 
         last_name = object.optString("last_name"); 
         fname.setText(first_name); 
         lname.setText(last_name); 
         e_mail.setText(email); 
         dp1.setProfileId(object.optString("id")); 
        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 
       } 
      }); 
      /*AccessToken accessToken = loginResult.getAccessToken(); 
      Profile profile = Profile.getCurrentProfile(); 
      displayMessage(profile);*/ 
      Bundle parameters = new Bundle(); 
      parameters.putString("fields", "id,name,first_name,last_name,email,picture.type(large)"); 
      graphRequest.setParameters(parameters); 
      graphRequest.executeAsync(); 
     } 

回答

0

數據要獲得當前位置,這是如何做到這一點:

只是要求正確的權限,如user_location之後,

編輯

使用此行代碼:

String currentCity = obj.getJSONObject("location").getString("name"); 

爲:

    try { 
         name = object.getString("name"); 
         first_name = object.optString("first_name"); 
         last_name = object.optString("last_name"); 
         String currentCity = obj.getJSONObject("location").getString("name"); 
         fname.setText(first_name); 
         lname.setText(last_name); 
         e_mail.setText(email); 
         dp1.setProfileId(object.optString("id")); 
        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 

,可以在以下添加location

parameters.putString("fields", "id,name,first_name,last_name,email,location,picture.type(large)"); 
+0

「obj.getJSONObject(「位置「)」的getString( 「名稱」); ' 不工作。 我如何使用graphObject? – Shahal

+0

@Shahal我只是建議,你可以使用你正在使用的其他代碼。檢查編輯。 –

+0

對不起兄弟。這是我的錯,我忘了添加位置捆綁。 – Shahal