Android 从facebook batchrequest读取值
我正在尝试阅读所有使用Facebook好友的应用程序。为此,我使用GraphAPI来获取ID,然后使用批处理请求来获取类似的内容 但我无法在batchrequest中正确迭代值。我会在下面解释 我正在使用下面的代码获取应用程序的ID,使用friends并将其存储在arraylist中。我在包含facebook batchrequest的末尾调用Android 从facebook batchrequest读取值,android,facebook,facebook-graph-api,Android,Facebook,Facebook Graph Api,我正在尝试阅读所有使用Facebook好友的应用程序。为此,我使用GraphAPI来获取ID,然后使用批处理请求来获取类似的内容 但我无法在batchrequest中正确迭代值。我会在下面解释 我正在使用下面的代码获取应用程序的ID,使用friends并将其存储在arraylist中。我在包含facebook batchrequest的末尾调用doBatchRequest new Request(session,"/me/friends",null,HttpMethod.GET, new Req
doBatchRequest
new Request(session,"/me/friends",null,HttpMethod.GET, new Request.Callback() {
@Override
public void onCompleted(Response response) {
FBAnalysis_List = new ArrayList<FBAnalysisObj>();
try {
GraphObject graphObject = response.getGraphObject();
JSONObject jsonObject = graphObject.getInnerJSONObject();
if(graphObject!=null){
JSONArray array = jsonObject.getJSONArray("data");
for (int i = 0; i < array.length(); i++) {
JSONObject object = (JSONObject) array.get(i);
fbAnalysisObj_ref = new FBAnalysisObj();
fbAnalysisObj_ref.setName(String.valueOf(object.get("name")));
fbAnalysisObj_ref.setId(String.valueOf(object.get("id")));
FBAnalysis_List.add(fbAnalysisObj_ref);
}
doBatchRequest();
}
} catch (JSONException e) {e.printStackTrace();}
}
}).executeAsync();
这里的问题是,在迭代过程中,我得到的是列表中最后一个facebook ID,而不是所有ID
i、 e.在调用requestBatch.add
之前,我将获取包含列表中所有id的日志
In while id is 678081895623440
In while id is 1380238265604356
但是在requestBatch.add
之后,我得到了最后一个facebook ID
array count 20
fbAnalysisObj_ref.getLikes() 7
fbAnalysisObj_ref.getName() Demo Imp
fbAnalysisObj_ref.getId() 1380238265604356
array count 0
fbAnalysisObj_ref.getLikes() 7
fbAnalysisObj_ref.getName() Demo Imp
fbAnalysisObj_ref.getId() 1380238265604356
迭代中有什么错误吗?请提供帮助。这将仅适用于Graph API v1.0,之后,好友*
权限已被删除。这使得无法获取好友数据。v1.0仅在2015年4月30日之前可用
如果您使用的是v1.0,那么查询
/me/friends?fields=id,likes.limit(500)
如果我这样使用,我得到的错误消息是“{Response:responseCode:400,graphObject:null,error:{HttpStatus:400,errorCode:2500,errorType:OAuthException,errorMessage:active access令牌必须用于查询关于当前用户的信息。},isFromCache:false}”,那么,阅读错误消息。您正在使用过期的访问令牌。只需将/me/friends
替换为/me/friends?fields=id,likes.limit(500)
。错误消息是关于过期的acces令牌的。
/me/friends?fields=id,likes.limit(500)