8
votes

Comment puis-je appeler plus de 100 statuts avec API Facebook?


0 commentaires

5 Réponses :


4
votes

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.

Modifier

par fermeture à bugs, la limite 100 est par design et vous n'en tirerez pas plus que cela, ce qui signifie que Facebook a fait une décision de commerce consciente à Limiter la quantité de données il doit Store, processus et servir à partir de l'API graphique. Cela coûte de l'argent à le faire et puisque l'API est libre d'utiliser, je ne peux pas discuter avec eux. Cependant, si je payais pour cela, alors enfer oui je frappe et crie jusqu'au bout de la route.


4 commentaires

est-ce que cela a répondu à ta question?


Ray de Facebook a déclaré que vous pouviez voir seulement 100 statuts à la fois 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.



1
votes

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.


1 commentaires

On dirait qu'il gagne un peu de momentum. J'espère qu'ils le répareront bientôt.



0
votes

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


1 commentaires

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.



3
votes

paging forte> et depuis strong>, jusqu'à strong> paramètres ne fonctionne pas pour moi aussi.

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));
}


0 commentaires

6
votes

Cela fonctionne. Vous devez utiliser les deux limite et décalage paramètres de requête. Le paramètre limite définit la taille du lot. Le paramètre décalse définit la position dans la collection d'état de l'utilisateur. Sans spécifier le paramètre décalage , Facebook le défaut à zéro, c'est pourquoi vous continuez à voir le même jeu de données.

pour le 1er lot de 100 étages, définissez limite à 100 et décalse à 0 .
Pour le 2e lot de 100 étages, définissez limite à 100 et décalage à 100 .
Pour le 3ème lot de 100 étages, définissez limite sur 100 et décalage à 200 .
Pour le 4ème lot de 100 étages, définissez limite sur 100 et décalage à 300 .
Et ainsi de suite ...

Gardez itérant jusqu'à obtenir un jeu de données vide: xxx


0 commentaires