[英]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.