2016-03-29 11 views
0

Facebookからユーザーの現在の国を取得しようとしています。私は電子メール、ID、姓、ファーストネームなどのデータを取得することができますが、国になると正しいコードを見つけることができません。誰かが必要な権限とオブジェクトからデータを取得する方法を教えてもらえますか?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(" name "); ' 動作しません。 graphObjectはどのように使用できますか? – Shahal

+0

@Shahal私はちょうどあなたが他のコードを使っているのと同じように使うことを提案しました。編集を確認します。 –

+0

ごめんなさい。それは私のせいだった、バンドルに場所を追加するのを忘れた。 – Shahal

関連する問題