Facebook api android获取好友列表

时间:2017-09-12 23:54:41

标签: java android facebook-graph-api

我在Android应用和Facebook个人资料之间实现了身份验证。我能够获取登录的用户数据。但是我需要让用户(仅)玩游戏(步骤1)。

到目前为止,这是我的代码:

 GraphRequest request =  new GraphRequest(
            AccessToken.getCurrentAccessToken(),
            "/{user-id}/friends",
            null,
            HttpMethod.GET,
            new GraphRequest.Callback() {
                public void onCompleted(GraphResponse response) {


                }
            }
    ).executeAsync();

从技术上讲,我的回答应该是JSON格式,我应该能够从中获取我需要的内容。但是每当我尝试将我的项目冻结并重新启动时。

对于第二步,你有什么关于如何从我的应用程序发送最高分的建议,以便在Facebook上发布,然后能够检索它并在我让朋友列表玩游戏后显示它吗?

谢谢

2 个答案:

答案 0 :(得分:0)

我能够使用线程来解决它。

final GraphRequest request_getFriends = new GraphRequest(
                    AccessToken.getCurrentAccessToken(),
                    "/" + AccessToken.getCurrentAccessToken().getUserId() + "/friends?",
                    null,
                    HttpMethod.GET,
                    new GraphRequest.Callback() {

                        @Override
                        public void onCompleted(GraphResponse response) {

                            JSONObject object = response.getJSONObject();
                            try {
                                if (object !=null){
                                JSONArray data = object.getJSONArray("data");
                                for (int i = 0; i < data.length(); i++) {
                                    String id = data.getJSONObject(i).getString("id");
                                    String name = data.getJSONObject(i).getString("name");
                                    ListOfFriendsIDS.add(id);
                                    ListOfFriendsNames.add(name);
                                }
                                }
                            } catch (JSONException e) {

                            }
                        }
                    }
            );


            Thread t = new Thread(new Runnable() {
                @Override
                public void run() {
                    request_getFriends.executeAndWait();
                }
            }
            );

            t.start();

之前的代码是异步执行的,我的结果没有正确获取。

答案 1 :(得分:-1)

使用此GameRequestDialog加载非应用用户的朋友。

GameRequestDialog dialog;
GameRequestContent content = new 
GameRequestContent.Builder().
            setTitle("title").
            setMessage("message").
       setFilters(GameRequestContent.Filters.APP_NON_USERS) 
.build();
dialog.show(content);

与此同时,通过这个将提供很大的帮助。这是facebook实施的示例项目。

https://github.com/fbsamples/android-friend-smash

希望有所帮助