Java 在Android Facebook SDK中获取好友状态更新
我正在Android上开发一个facebook应用程序,它可以获取用户朋友的一些状态更新,然后根据状态中的关键字对其进行分类。然而,我很难找到如何获取用户好友状态更新列表的方法 到目前为止,我已经有了从graph API获取用户朋友的代码,但我不相信其中包括朋友的状态。以下是我编写的代码: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
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将取消它将返回的查询请求失败
参考资料: