得到朋友' Android Facebook SDK中的状态更新

时间:2014-07-22 17:10:16

标签: java android facebook facebook-graph-api

我正在Android上开发一个Facebook应用程序,它可以获取用户朋友的一些状态更新,然后根据状态中的关键字对它们进行分类。但是,我很难找到如何获取用户朋友状态更新列表的方法。

到目前为止,我有代码从图API获取用户的朋友,但我不相信包含朋友的状态。这是我写的代码:

private void categorizeFriends(final Session session){

    //get friend data
    Request request = Request.newMyFriendsRequest(session, new Request.GraphUserListCallback() {
        @Override
        public void onCompleted(List<GraphUser> users, Response response){

            if(response.getError() != null && session == Session.getActiveSession()){
                for(GraphUser u : users){
                    categorizeFriend(u);
                }
            }
        }
    });

    request.executeAsync();

}

在此代码中,categorizeFriend方法将获取朋友的状态更新,并根据他们分类的内容将它们放入全局ArrayList中。但是,看起来GraphUser中没有任何状态信息 - 它只返回每个朋友的一般信息。

所以我对这个问题有两个部分:

1)有没有办法一举两得,并在一个请求中执行此操作而不必在categorizeFriend中执行另一个请求?

2)获取用户朋友状态的请求是什么样的?我已经看到我可以为请求设置参数然后执行它,但是如何在执行该请求后收集用户的状态?

感谢您帮助我 - 我一直在寻找并且未能找到一个好的答案。

2 个答案:

答案 0 :(得分:1)

鉴于您已意识到friends_*权限将于2015年4月30日消失(因此您不再像现在这样使用图谱API),您可以使用字段扩展来获取所有朋友&#39 ; s状态与请求:

GET /me?fields=friends.fields(statuses.limit(5))

这将返回用户(与此查询一起使用的访问令牌)朋友的最近5次状态更新。

我强烈建议您也限制状态字段,否则可能会导致查询执行时间过长而且Facbook会取消查询(它将返回&#34;请求失败&#34 ;)

参考文献:

答案 1 :(得分:-1)

您需要为每个朋友的Feed创建一个请求,但您可以使用RequestBatch执行它们。

https://developers.facebook.com/docs/reference/android/current/class/RequestBatch/

这会发送所有请求,并在一次访问Facebook服务器时收集结果。此页面包含限制下的重要信息。批处理中的每个请求都将计入API使用限制,而不是计数为一个。它还说批量限制是一批50个请求。

https://developers.facebook.com/docs/graph-api/making-multiple-requests

很抱歉,我没有任何示例代码,但此页面会:

https://developers.facebook.com/docs/android/graph

我无法将您直接链接到代码,但第一个列表指出“使用批量请求可以提高您的应用效率”。只需点击链接即可获取代码。希望这会有所帮助。