Android 从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

我正在尝试阅读所有使用Facebook好友的应用程序。为此,我使用GraphAPI来获取ID,然后使用批处理请求来获取类似的内容

但我无法在batchrequest中正确迭代值。我会在下面解释

我正在使用下面的代码获取应用程序的ID,使用friends并将其存储在arraylist中。我在包含facebook batchrequest的末尾调用
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)