繁体   English   中英

在Android Facebook SDK中获取好友的状态更新

[英]Getting Friends' status updates in Android Facebook SDK

我正在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)请求如何获得用户的朋友状态? 我已经知道可以为请求设置参数然后执行它,但是执行该请求后如何收集用户的状态?

谢谢您的帮助-我一直到处寻找,却没有找到一个很好的答案。

既然您知道friends_*权限将于2015年4月30日消失(因此您就不能像现在那样使用Graph API),则可以使用Field Expansion根据要求获取所有朋友的状态:

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

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

我强烈建议您也限制状态字段,否则查询可能会花费太多执行时间,并且Facbook将取消查询(它将返回“请求失败”)。

参考文献:

您将需要为每个好友的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

我无法将您直接链接到代码,但是第一个列表指出“使用批处理请求使您的应用程序更高效”。 只需点击链接即可获得代码。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM