2016-03-29 18 views
0

Kullanıcının güncel ülkesini Facebook'tan almaya çalışıyorum. E-posta, kimlik, soyadı, ad vb. Gibi verileri alabiliyorum, ancak ülkeye gelince doğru kodu bulamıyorum. Birisi bana gerekli izinleri ve verilerin nesneyi nasıl getireceğini söyleyebilir.Kullanıcı ülkesini facebook'tan alın

anda bunlar benim izinler

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

vardır Ve mevcut konumu elde etmek için bu

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(); 
     } 

cevap

0

gibi veriler alınırken ediyorum, bunu yapmak için yapılması gerekenler:

Sadece user_location ve bundan sonra

gibi doğru izinleri isteyin

Düzenleme

Kullanım kod satırı:

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

olarak:

    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(); 
        } 

Ayrıca aşağıdaki location ekleyin:

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

'obj.getJSONObject ("konum ")' getString (. "name"); ' Çalışmıyor. graphObject nasıl kullanabilirim? – Shahal

+0

@Shahal Sadece başka bir kod kullandığınız gibi kullanabilirsiniz. düzenlemeyi kontrol et. –

+0

üzgünüm kardeşim. benim hatamdı, demetleri yere eklemeyi unuttum. – Shahal

İlgili konular