0

名前、場所などのすべての友人情報を応答のグラフ オブジェクトとして取得していますが、json から場所を取得したい場合、場所の値がありません。助けて、どこが間違っているのか教えてください。

    Bundle required = new Bundle();
                required.putString("fields", "id,name,picture,location,locale,gender,email");
                Request req = new Request(session, "me/friends", required,HttpMethod.GET,
                        new Callback() {

                            @Override
                            public void onCompleted(Response response){
                               GraphObject is=response.getGraphObject();  
                                // Log.w("FriendsList", is.toString());
                               String location="";
                                      if (is != null) {
                                          JSONObject jsonObject = is.getInnerJSONObject();

                                          try {

                                              JSONArray myfriendlist=new JSONArray();
                                           JSONArray array = jsonObject.getJSONArray("data");
                                           for (int i = 0; i < array.length(); i++) {

                                               JSONObject object = (JSONObject) array.get(i);
                                               JSONObject friendlist = new JSONObject();
                                                 JSONObject keyfriendlist = new JSONObject();

                                          JSONArray loc = jsonObject.getJSONArray("location");
                                          for(int j=0;j<loc.length();j++){
                                         location=object.get("id").toString();
                                          if(location==null||location==""||location=="null")
                                          {
                                              continue;
                                          }}

ログキャット

04-18 18:48:37.360: W/System.err(28862): org.json.JSONException: No value for location
04-18 18:48:37.365: W/System.err(28862):    at org.json.JSONObject.get(JSONObject.java:354)
04-18 18:48:37.365: W/System.err(28862):    at org.json.JSONObject.getJSONArray(JSONObject.java:544)
04-18 18:48:37.365: W/System.err(28862):    at com.example.socialize_us.MainFragment$2.onCompleted(MainFragment.java:106)
04-18 18:48:37.365: W/System.err(28862):    at com.facebook.Request$4.run(Request.java:1240)
04-18 18:48:37.365: W/System.err(28862):    at android.os.Handler.handleCallback(Handler.java:605)
04-18 18:48:37.365: W/System.err(28862):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-18 18:48:37.365: W/System.err(28862):    at android.os.Looper.loop(Looper.java:137)
04-18 18:48:37.365: W/System.err(28862):    at android.app.ActivityThread.main(ActivityThread.java:4666)
04-18 18:48:37.365: W/System.err(28862):    at java.lang.reflect.Method.invokeNative(Native Method)
04-18 18:48:37.366: W/System.err(28862):    at java.lang.reflect.Method.invoke(Method.java:511)
4

2 に答える 2

0

「me/friends」のグラフ API は、Friend's Name と fbid のみを返します。ただし、この呼び出しでは使用できない他のプロパティも読み取ろうとしています。これは次のようなものを返します:

{ "name": "Friend's NAme", "id": "545981122" },

ここで確認してくださいFacebook Graph Api for me/friends

1人の友人の場所を取得するには、上記の電話からIDを取得し、次のような単一の友人の詳細を取得する必要があります。

私/友達/545981122

545981122 は友達の ID です。

それが役に立てば幸い。

乾杯 !

于 2013-04-18T14:43:02.013 に答える