2016-10-14 5 views
0

Ich verwende Facebooks Android SDK, um Informationen über den Benutzer abzurufen.Facebook Android SDK response.getRequestForPagedResults (GraphResponse.PagingDirection.NEXT) gibt null zurück

Meine erste Anfrage ist folgende:

GraphRequest request = GraphRequest.newMeRequest(
       AccessToken.getCurrentAccessToken(), this); 

Bundle parameters = new Bundle(); 
parameters.putString("fields", "id,name,events"); 
request.setParameters(parameters); 
request.executeAndWait(); 

und das funktioniert gut. Der Rückruf sieht wie folgt aus:

@Override 
public void onCompleted(JSONObject object, GraphResponse response) { 
    User user = parseAndValidateFacebookResponse(object); 
    if (user.getEvents().getData().size() != 0) { 
     // do stuff here 
    } 

    GraphRequest nextRequest = response.getRequestForPagedResults(GraphResponse.PagingDirection.NEXT); 
    if (nextRequest != null) { 
     Bundle parameters = new Bundle(); 
     parameters.putString("fields", "id,name,events"); 
     nextRequest.setParameters(parameters); 
     nextRequest.setCallback(this); 
     nextRequest.executeAsync(); 
    } 
} 

Ich bin in der Lage, die JSONObject zu analysieren, und wenn ich die rohe Reaktion untersuchen, sieht es das gleiche wie das, was Facebook's Graph API Explorer mir gibt.

Ein Teil des JSON (im rohen GraphResponse sowie im Graph-Explorer) beschreibt die Paginierung:

"paging": { 
    "cursors": { 
    "before": "TVRRek1qTTJOREF3TXpZAMU1qQTFNRG94TmprNE5URTJNREF3T2pFNU9UZAzFPREF4TXpNNU9EUXdPQT09", 
    "after": "TVRVM05qYzVNVEkxTlRrMU1ERTJNam94TkRjME1EVTVOakF3T2pFNU9UZAzFPREF4TXpNNU9EUXdPQT09" 
    }, 
    "next": "https://graph.facebook.com/v2.8/customerID/events?access_token=accesstoken" 
} 

Allerdings, wenn ich versuche, das nächste GraphRequest als Teil des GraphResponse, habe ich immer zu holen zurück null.

Was mache ich falsch?

Antwort

0

Ich bin mir nicht sicher, ob dies mit der Tatsache verbunden ist, dass ich mit einem newMeRequest anstelle eines „normalen“ GraphRequest, aber ich habe diese Arbeit nach meiner Einführung in die folgende Veränderung:

Bundle parameters = new Bundle(); 
     parameters.putString("fields", "id,name,events"); 
     parameters.putString("limit", "25"); 

     new GraphRequest(
       AccessToken.getCurrentAccessToken(), 
       "/" + Profile.getCurrentProfile().getId() + "/events", 
       parameters, 
       HttpMethod.GET, 
       this) 
     .executeAsync(); 

@Override 
public void onCompleted(JSONObject object, GraphResponse response) { 
    User user = parseAndValidateFacebookResponse(object); 
    if (user.getEvents().getData().size() != 0) { 
     // do stuff here 
    } 

    GraphRequest nextRequest = response.getRequestForPagedResults(GraphResponse.PagingDirection.NEXT); 
    if (nextRequest != null) { 
     Bundle parameters = new Bundle(); 
     nextRequest.setParameters(parameters); 
     nextRequest.setCallback(this); 
     nextRequest.executeAsync(); 
    } 

}

Momentan kann ich die nächsten Seiten mit getRequestForPagedResults durchqueren.

Verwandte Themen