2017-04-18 1 views
0

Ich benutze RestFB, um Beiträge von Seiten von Facebook zu erhalten. Das Problem ist, dass ich nur die letzten Posts der Seite, sagen wir mal, die Posts des letzten Monats möchte. Mit meinem Code bekomme ich die ganze Geschichte und es braucht viel Zeit. Wie mache ich das? Ich habe nicht über einen "timestamp" Parameter gelesen. Ich habe mit dem Limit-Parameter ohne ein gutes Ergebnis versucht.Erhalten Sie nur die neuesten Beiträge von Facebook mit RestFB

Mein Code ist:

public static JSONArray GetPostsFromPage(String idpage) { 
    String texto, idpost; 
    Date timestamp; 
    JSONArray array = new JSONArray(); 
    JSONObject objeto; 
    Connection<Post> postFeed = fbClient.fetchConnection(idpage + "/feed", Post.class, Parameter.with("limit", 50)); 

    for (List<Post> postPage : postFeed) { 
     for (Post aPost : postPage) { 
      objeto = new JSONObject(); 
      idpost = aPost.getId(); 
      texto = aPost.getMessage(); 
      timestamp = aPost.getCreatedTime(); 

      objeto.put("id", idpost); 
      objeto.put("texto", texto); 
      objeto.put("timestamp", timestamp); 

      array.put(objeto); 
     } 
    } 
    return array; 
} 

Jede Idee wird begrüßt. Vielen Dank.

Antwort

1

Mein erster Vorschlag: Überprüfen Sie die Zeitbasierte Paginierung hier: https://developers.facebook.com/docs/graph-api/using-graph-api

Sie haben einfach Parameter.with("since", "<timestamp>") Sie hinzufügen fetchConnection zu nennen.

Zweiter Vorschlag: Lassen Sie die Schleife auf einem gespeicherten Zeitstempel. Sie speichern einfach den TS des neuesten Posts und bei der nächsten Abfrage-Iteration stoppen Sie die Schleife auf diesem TS.

Verwandte Themen