Facebook Graph API v2.2 me / friends仅返回no。用户

时间:2014-11-07 11:27:26

标签: android facebook facebook-graph-api

好的,首先,我访问了StackOverflow上的所有相关问题,但我找不到答案。所以请不要将此标记为类似问题的副本。

我正在使用最新的Graph API v2.2获取正在使用我的应用的FB好友列表。

请求Android代码 -

    Session activesession=Session.getActiveSession();
    if(activesession!=null){
        new Request(
                activesession,
                "/v2.2/me/friends",
                null,
                HttpMethod.GET,
                new Request.Callback() {
                    @Override
                    public void onCompleted(Response response) {
                        // TODO Auto-generated method stub
                        String strresponse=response.getRawResponse();
                        JSONObject jsonresponse=null;
                        try {
                            jsonresponse = new JSONObject(strresponse);                             
                        } catch (JSONException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                }
            ).executeAsync();           
    }
    else{
        System.out.println("Session is NULL");
    }
}

应答为 {    "数据":[

]    "摘要":{       " total_count":199    } }

我肯定知道我的朋友列表中有一位朋友已经下载了相同的应用程序&通过FB登录到它。

我也尝试使用FB Graph explorer工具&它给了我同样的回应 -

我期待数据阵列中至少有一个用户详细信息。不知道我在这里缺少什么。

请告知。

谢谢!

3 个答案:

答案 0 :(得分:0)

试试这个我/ taggable_friend我的朋友/朋友希望它会起作用

Session activesession = Session.getActiveSession();     如果(activesession!= NULL){         新请求(                 activesession,                 " /v2.2/me/taggable_friend" ;,                 空值,                 HttpMethod.GET,                 new Request.Callback(){                     @覆盖                     public void onCompleted(响应响应){                         // TODO自动生成的方法存根                         String strresponse = response.getRawResponse();                         JSONObject jsonresponse = null;                         尝试{                             jsonresponse = new JSONObject(strresponse);
                        } catch(JSONException e){                             // TODO自动生成的catch块                             e.printStackTrace();                         }                     }                 }             ).executeAsync();
    }     其他{         System.out.println(" Session为NULL");     } }

感谢

答案 1 :(得分:0)

在facebook

中尝试使用v2.2
Bundle bundle = new Bundle();
bundle.putString("fields", "name,picture,id");

new Request(session, "/me/friends", bundle,  HttpMethod.GET, new Callback() {
    @Override
    public void onCompleted(Response response) {
        System.out.println("response=============="+response);
    }
}).executeAsync();

答案 2 :(得分:0)

试试这个

public void getFriends() {
    Session activeSession = Session.getActiveSession();
    if (activeSession.getState().isOpened()) {
        new Request(
                activeSession,
                "/me/friends",
                null,
                HttpMethod.GET,
                new Request.Callback() {
                    public void onCompleted(Response response) {
                        GraphObject graphObject = response.getGraphObject();
                        if (graphObject != null) {
                            try {
                                JSONObject jsonObject = graphObject.getInnerJSONObject();
                                JSONArray data = jsonObject.getJSONArray("data");

                                for (i = 0; i < data.length(); i++) {
                                    final String name = data.getJSONObject(i).getString("name");
                                    final String id = data.getJSONObject(i).getString("id");
                                }
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }
        ).executeAsync();
    }
}