Comment utiliser le Facebook Graph Api de base de Curseur de la Pagination
Je n'ai pas trouvé d'aide sur ce sujet. Les Docs disent
Curseur en fonction de la pagination est la méthode la plus efficace de la pagination et doit toujours être utilisé lorsque cela est possible - un curseur se réfère à une chaîne de caractères aléatoires qui marque un élément spécifique dans une liste de données. À moins que cet élément est supprimé, le curseur pointe toujours à la même partie de la liste, mais il sera invalidée si un élément est supprimé. Par conséquent, votre application ne devrait pas stocker toutes les anciennes curseurs ou de supposer qu'ils seront toujours valides.
When reading an edge that supports cursor pagination, you will see the following JSON response:
{
"data": [
... Endpoint data is here
],
"paging": {
"cursors": {
"after": "MTAxNTExOTQ1MjAwNzI5NDE=",
"before": "NDMyNzQyODI3OTQw"
},
"previous": "https://graph.facebook.com/me/albums?limit=25&before=NDMyNzQyODI3OTQw"
"next": "https://graph.facebook.com/me/albums?limit=25&after=MTAxNTExOTQ1MjAwNzI5NDE="
}
}
Je suis en utilisant ce format pour faire un appel d'api, comment puis-je aller à travers toutes les pages dans une boucle
/* make the API call */
new GraphRequest(
session,
"/{user-id}/statuses",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
}
}
).executeAsync();
OriginalL'auteur Web Development | 2015-04-27
Vous devez vous connecter pour publier un commentaire.
J'ai pensé à un bon chemin à parcourir par le biais de facebook api graphique des pages à l'aide du curseur de la pagination
ce n'est pas de travail. Je reçois même des données dans une boucle infinie. stackoverflow.com/questions/45319372/...
OriginalL'auteur Web Development
Ne pas réinventer la roue.
GraphResponse classe possède déjà une méthode pratique pour l'échange.
GraphResponse.getRequestForPagedResults()
retourneGraphRequest
objet, et vous pouvez utiliser cet objet pour la pagination.Aussi j'ai trouvé l'extrait de code de facebook-android-sdk du code de test unitaire.
Je suis
android.os.NetworkOnMainThreadException
sur l'utilisation de cette méthode. Veuillez consulter la question ici: stackoverflow.com/q/45875090/6144372OriginalL'auteur 김준호
S'il est vrai que vous devez utiliser
GraphResponse.getRequestForPagedResults()
, vous ne pouvez pas utiliserexecuteAndWait()
à moins que vous l'exécuter dans un thread différent.Vous pouvez la rendre encore plus facile à l'aide de
executeAsync()
.À obtenir le premier ensemble de résultats:
Utiliser que lastGraphResponse à obtenir le prochain jeu de résultats:
Vous pouvez fusionner tous que dans une seule méthode!
pourriez-vous s'il vous plaît répondre, @RominaV?
désolé, je ne me souviens plus, c'était il y a longtemps. Pour ce que je peux voir dans le code de la réponse, l'idée est que vous lisez set par set, pas tous à la fois.
OriginalL'auteur RominaV
J'utilise ce code:
OriginalL'auteur Miguel Cotes Mendez