Comment pagination dans le facebook de l'API javascript de travail?
Je suis en train de récupérer la dernière semaine de postes dans mon facebook flux d'actualités avec le sdk javascript.
Je suis en mesure d'obtenir la première page, mais ensuite, je ne sais pas comment continuer à itérer sur les autres pages. J'ai essayé avec le code suivant:
$('#loadPosts').bind('click', function() {
FB.api('/me/home',{since:'last week'}, getPosts);
});
getPosts = function(response){
for (element in response.data){
post = response.data[element]
console.log(post);
}
previousPage = response.paging.previous;
console.log(previousPage);
//can i call FB.api(previousPage, getPosts); ??
}
Mais je suis un URL de la page précédente et je ne sais pas comment faire un javascript FB.les appels de l'api à partir de cette URL. Des idées?
- veuillez consulter la stackoverflow.com/questions/17416787/...
- Oui, vous pouvez faire ce que vous vous attendiez à être vrai:
FB.api(previousPage, getPosts);
Vous devez vous connecter pour publier un commentaire.
Bien, il semble que beaucoup de pleurnicher sur une question simple, que je crois toujours que mon ancienne réponse précise. De toute façon, permettez-moi de garder des enfants vous. 🙂
Première: je trouve que vous ne pouvez pas vraiment aller à la "précédente" de la page à partir de la première page. Idéalement, je devrais. Donc, voici un bug que j'ai déposé, vous pouvez suivre: https://developers.facebook.com/bugs/391562790938294?browse=search_50fcac3ce094e7068176315
Deuxième: Si c'est par la conception, vous ne pouvez pas revenir à "précédent" de la première page (car il y a est pas de précédent), mais vous pouvez certainement aller pour "Suivant". Cependant, depuis l'API se comporte comme un curseur, et que vous avez déplacé vers l'avant, maintenant, votre "précédent" page ne fonctionne.
La réponse à la question:
Je suis un URL de la page précédente et je ne sais pas comment faire un javascript FB.les appels de l'api à partir de cette URL. Des idées?
Comment obtenir la page précédente/suivante?
Ici, je suis en train d'écrire un petit code qui utilise jQuery. Dans le cas où vous ne voulez pas lire le code, il y a deux façons:
FB.api
. J'ai utilisé jQuery BARBECUE pluging pour l'analyse.Remarque importante: Dans l'exemple, je suis en utilisant des "à côté" de l'URL parce que sur la première demande si j'utilise "précédent", il donne à vide JSON au lieu de donner des postes à partir du passé. Cependant, je peux utiliser "précédent" de l'URL une fois que j'ai déménagé à l'avance quelques pages. Comme les résultats de Google, vous ne pouvez pas aller à la page précédente 1, mais vous pouvez à partir de n'importe quelle page > 1 (voir l'Exemple 3 ci-dessous). Cela s'appelle de la pagination.
Exemple 1: Code à l'aide de HTTP GET (de préférence): (je vais charger 3 postes/page et de regarder les trois prochaines pages)
Réponse:
Exemple 2: Code à l'aide de FB.api: (je vais charger 3 postes/page et de regarder les trois prochaines pages)
Réponse:
Exemple 3: Exécution: page1 -> page2 -> page 1 ou page -> next -> précédent Le code suivant va charger la page 1, puis cliquez sur "suivant" page (page2), puis revenir à la page 1, à l'aide de "précédent"
Réponse:
VIEILLE RÉPONSE
Utilisation
limit
,offset
,since
etuntil
paramètres pour atteindre votre objectif.Consulter: http://developers.facebook.com/docs/reference/api/
Suivantes devraient recevoir tous les postes depuis
last week
jusqu'àyesterday
de21st - 30th
message (en gros, troisième page de 10 messages par page de la pagination).Je viens de le tester, il fonctionne. J'ai utilisé limit=4, qui est la page de taille genre de chose. Donc, quand j'ai récupérer les données depuis Fév 02, 2011 (Unix horodatage: 1296626400) jusqu'à aujourd'hui, à l'aide de cette
Il renvoie les données, il fournit aussi des URL de retour pour aller à la page suivante
Vous pouvez utiliser en toute sécurité
previous
etnext
attributs de l'objet JSON pour passer à la page suivante (ou la page précédente). Cela semble être la façon la plus simple de le faire.Par la voie,
\u00257C
doit être converti à|
pour obtenir que cela fonctionne.limit
etoffset
plus, essayez desince
etuntil
au lieulimit
avec le curseur en fonction de la pagination. Aussi, le doc a dit qu'ils soutiennentoffset
trop. Je vais vérifier ça. Je n'espère pas qu'ils ont dépassées docs.Si vous voulais simplement obtenir la page suivante (en utilisant la pagination.à côté de l'objet), vous pourriez faire un jQuery.getJSON demande. Quelque chose comme ce qui suit:
La contrainte de clé dans votre question, nous ne pouvons pas utiliser le "prochain" de l'url fourni dans la réponse.
Je vais essayer de répondre à votre question en demandant d'abord à une question plus générale:
Si l'utilisateur demande des "plus" et obtient 10 points, les presses de "plus" et récupère puis 4, puis 7 etc, elle va penser que notre application est en buggy.
Sur l'Open Graph page d'intro, différents paramètres pour la pagination sont introduits. Ce sont:
comme mentionné dans le 'pagination' en-tête. Cependant, si nous mettons en œuvre une solution avec limit et offset où on incrémente le compteur de décalage ,par exemple:
où OFFSET sera augmenté par la limite de chaque demande, nous constatons que le nombre de résultats retournés parfois de ne pas être égal à la “limite” de paramètre que nous avons spécifié. C'est parce que les paramètres sont appliqués sur Facebook côté avant de vérifier si l'interrogé les résultats sont visibles pour le spectateur. Nous demandons 10, mais il peut arriver, 8 éléments en retour.
Cela signifie que nous ne pouvons pas utiliser une solution où l'on incrémente limit et offset si nous voulons que notre application "plus" requête retourne toujours la même quantité d'objets.
Une solution proposée dans ce blog par Jeff Bowen (qui travaille sur le Facebook de platforme de l'équipe) est cette logique:
Voici un exemple de code, basé sur un exemple dans le billet de blog mentionnés ci-dessus:
Cette solution récupère les 10 éléments du fil d'actualité de l'utilisateur dans l'ordre chronologique, sans l'aide de l'url dans la réponse JSON.
Il travaille
J'ai remarqué que la question est très ancienne. Ma réponse est vrai pour ces jours FB jsSDK (2017) 🙂
En fait c'est plus simple que ce que les prédécesseurs décrit et peu intuitive. FB jsSDK c'est une API en elle-même, et il est prévu pour être en mesure de naviguer à travers les pages de la réponse par lui-même et en utilisant le même moyen, non?
Évidemment, cela demande pour les pages suivantes, tant qu'il y a une touche next défini, mais il s avère que le concept.