如何在android中使用图形api获取好友列表?

时间:2016-08-12 06:38:19

标签: java android facebook facebook-graph-api android-facebook

我正在创建一些代码来使用图形api获取好友列表,但没有找到好友列表。我只得到了好友总数。

代码: -

 LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends", "email"));
        LoginManager.getInstance().registerCallback(callbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        Log.e("Success1", "Success" + loginResult.getAccessToken().getToken());
                        GraphRequest request = GraphRequest.newMeRequest(
                                loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
                                    @Override
                                    public void onCompleted(JSONObject json, GraphResponse response) {
                                        progressDialog.dismiss();

                                        if (response.getError() != null) {
                                            // handle error
                                            Log.e("getError", "getError");
                                        } else {
                                            Log.e("Success2", "Success");
                                            try {
                                                String jsonresult = String.valueOf(json);
                                                Log.e("JSON", "" + jsonresult);

                                                new GraphRequest(
                                                        AccessToken.getCurrentAccessToken(),
                                                            "/" + json.getString("id") + "/friends",
                                                        null,
                                                        HttpMethod.GET,
                                                        new GraphRequest.Callback() {
                                                            public void onCompleted(GraphResponse response) {
                                                                Log.e("response", "" + response);
                                                            }
                                                        }
                                                ).executeAsync();
                                            } catch (JSONException e) {
                                                e.printStackTrace();
                                                Log.e("JSONException", "" + e.getMessage());
                                            }
                                        }
                                    }

                                });
                        Bundle parameters = new Bundle();
                        parameters.putString("fields", "id, first_name, last_name, email,gender, birthday, location,friends"); // Parámetros que pedimos a facebook
                        request.setParameters(parameters);
                        request.executeAsync();
                    }

                    @Override
                    public void onCancel() {
                        Log.e("cancel", "On cancel");
                        progressDialog.dismiss();
                    }

                    @Override
                    public void onError(FacebookException error) {
                        Log.e("Error", error.toString());
                        progressDialog.dismiss();
                    }
                });

输出: -

{"data":[],"summary":{"total_count":475}}, error: null}

1 个答案:

答案 0 :(得分:1)

在更新Facebook Graph API 2.0之后,您将只能让您的朋友使用您的应用。

使用Graph API v2.0及更高版本,对/ me / friends的调用仅返回同时使用您的应用的朋友。这些朋友也必须授予user_friends权限。如果您希望让人们在您的应用发布的故事中为他们的朋友添加标签,您可以使用Taggable Friends API。

检查以获取更多信息 https://developers.facebook.com/docs/apps/faq#faq_1694316010830088