Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android Facebook SDK中获取好友状态更新_Java_Android_Facebook_Facebook Graph Api - Fatal编程技术网

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

Java 在Android Facebook SDK中获取好友状态更新,java,android,facebook,facebook-graph-api,Java,Android,Facebook,Facebook Graph Api,我正在Android上开发一个facebook应用程序,它可以获取用户朋友的一些状态更新,然后根据状态中的关键字对其进行分类。然而,我很难找到如何获取用户好友状态更新列表的方法 到目前为止,我已经有了从graph API获取用户朋友的代码,但我不相信其中包括朋友的状态。以下是我编写的代码: private void categorizeFriends(final Session session){ //get friend data Request request = Requ

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

到目前为止,我已经有了从graph 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获取用户好友状态的请求是什么样的?我已经看到,我可以为请求设置参数,然后执行它,但是在执行该请求之后,我如何收集用户的状态呢


谢谢你的帮助,我已经找遍了,还没有找到一个好的答案。

你需要为每个朋友的提要创建一个请求,但是你可以用RequestBatch执行它们

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

很抱歉,我没有任何示例代码可供您使用,但此页面有:


我无法将您直接链接到代码,但第一个列表说明使用批处理请求来提高应用程序的效率。只需按照链接进入代码。希望这能有所帮助。

鉴于您知道好友权限将在2015年4月30日消失,因此您不能再像现在这样使用Graph API,您可以使用字段扩展按请求获取所有好友的状态:

GET /me?fields=friends.fields(statuses.limit(5))
这将返回用于此查询的访问令牌的用户最近5次状态更新

我强烈建议您也限制状态字段,否则很可能查询需要太多的执行时间,Facbook将取消它将返回的查询请求失败

参考资料: