2016-03-29 2 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

Смежные вопросы