Je construis une application Facebook et je souhaite que cela puisse lire tous les statuts de l'utilisateur à partir de l'année écoulée. Lorsque je fais l'appel de l'API, je ne peux récupérer que les 100 premiers statuts, peu importe ce que je définis la limite à. P>
Voici l'URL que j'utilise pour faire appel à l'appel:
https://graph.facebook.com/me/status-limit=100&access_Token= a> ... p>
Lorsque je définit la limite inférieure, cela montre moins d'états (prouvant que l'argument limite fonctionne). Lorsque je fixe la limite plus élevée, cela ne me donne que les 100 premiers. Quand j'utilise "depuis", cela ne me donne toujours que 100. P>
Quand j'utilise l'URL "suivante", cela me donne, je ne vois aucune donnée après les 100 premiers statuts. P>
Je sais qu'il est possible d'obtenir beaucoup plus que cela à cause d'applications telles que mon année En statut p>
5 Réponses :
J'ai vérifié à l'aide de l'explorateur API graphique que la pagination ne fonctionne pas comme vous l'avez décrite. Connectez-vous comme un bug avec Facebook à: https://developers.facebook.com/bugs et poster le Bug # ici. p>
par fermeture à bugs, la limite 100 est
est-ce que cela a répondu à ta question?
Ray de Facebook a déclaré que vous pouviez voir seulement 100 statuts à la fois i> par design, mais vous pouvez utiliser la pagination pour en voir plus. Cependant, la pagination ne fonctionne pas, de sorte que sa réponse ne s'est pas tenue. Quoi qu'il en soit, cela a été réaffecté afin qu'ils y travaillent. Il n'a jamais dit que c'est par conception que vous ne devriez que récupérer 100 statuts.
Et la pagination est également un virus connu aussi. Donc, avec une limite de 100, et non capable de faire une pagination précise, alors vous êtes coincé à 100 mon ami. Et c'est la réponse à votre question. Juste parce qu'une réponse à une question est "c'est un bogue", n'invalide pas la réponse d'être correcte. S'il vous plaît voir meta.stackexchange.com/ Questions / 5234 / ... pour savoir comment accepter les réponses
J'ai pu obtenir par ex. 379 statuts avec la technique de Bill.
Cela a fonctionné il y a une semaine, notre meilleur pari pour que ce fixe est correct, c'est de poster sur http: / /developers.facebook.com/bugs/155458081230560 Les développeurs Facebook savent donc de la taille d'un problème. P>
On dirait qu'il gagne un peu de momentum. J'espère qu'ils le répareront bientôt.
Facebook a fermé le bogue précédent sans vraiment tester pour voir que cela n'a pas fonctionné. J'ai fait un nouveau bogue ici: https://developers.facebook.com/bugs/242235199184053 p>
En fait, ils ne l'ont pas dit. Ils ont dit que la limite 100 est par conception. Voir ma réponse mise à jour avec les informations supplémentaires.
Mais j'ai découvert que je pouvais obtenir Plus de 100 statuts à l'aide d'un paramètre fort> offset strong>.
Voici mon code utilisant Facebook C # SDK STRY>: P> var fb = new FacebookClient(accessToken);
string connection = "statuses";
string urltemplate = "https://graph.facebook.com/me/{0}?limit={1}&offset={2}";
int limit = 25; //items on one page (Max is value 100)
int offset = 0;
var statuses = (IDictionary<string, object>)fb.Get(string.Format(urltemplate, connection, limit, offset));
while (statuses != null && statuses.ContainsKey("data") && ((Facebook.JsonArray)statuses["data"]).Count > 0)
{
var dataItems = (Facebook.JsonArray)statuses["data"];
foreach (Facebook.JsonObject item in dataItems)
{
//TODO: process item data
System.Diagnostics.Debug.WriteLine(item["message"]);
}
offset += limit;
statuses = (IDictionary<string, object>)fb.Get(string.Format(urltemplate, connection, limit, offset));
}
Cela fonctionne. Vous devez utiliser les deux pour le 1er lot de 100 étages, définissez Gardez itérant jusqu'à obtenir un jeu de données vide: p> limite code> et
décalage code> paramètres de requête. Le paramètre code> limite code> définit la taille du lot. Le paramètre code> décalse code> définit la position dans la collection d'état de l'utilisateur. Sans spécifier le paramètre code> décalage code>, Facebook le défaut à zéro, c'est pourquoi vous continuez à voir le même jeu de données.
limite code> à
100 code> et
décalse code> à
0 code>.
Pour le 2e lot de 100 étages, définissez limite code> à
100 code> et
décalage code> à
100 code>.
Pour le 3ème lot de 100 étages, définissez limite code> sur
100 code> et
décalage code> à
200 code>.
Pour le 4ème lot de 100 étages, définissez limite code> sur
100 code> et
décalage code> à
300 code>.
Et ainsi de suite ... p>