Question

Je suis l'auteur de Application fazzle sur iPhone. Ce que fait mon application, c'est télécharger les mises à jour de l'état de l'utilisateur et les trier dans diverses commandes (par exemple, la plus appréciée, la plus commentée).

Je me demande si Facebook autorise les développeurs à obtenir des mises à jour de statut de l'utilisateur depuis le jour où ils ont rejoint Facebook, car lorsque j'ai lancé l'application, je ne peux obtenir que les statuts des utilisateurs à partir de 2009. Aujourd'hui, je viens de découvrir que Facebook limite les appels de l'API graphiques jusqu'à 2011 .

J'ai essayé de regarder des documents, demandé ici, et a contacté Facebook via leur forum. Cependant, jusqu'à présent, il n'y a pas de mot sur cette limitation dans l'API graphique. Ai-je oublié quelque chose? Y a-t-il une autre façon pour moi d'obtenir des données pour les mises à jour de statut avant 2011?

Vous pouvez le tester vous-même ici. Utilisez cette demande GET:

https://graph.facebook.com/(your_user_id)/statuses?limit=99999

Faites défiler vers le bas et vous découvrirez que tout n'est pas téléchargé.

Est-ce à cause du conflit d'intérêts avec Facebook? Si c'est le cas, ça craint.

Enregistré comme un bogue ici. En espérant toujours que quelqu'un puisse souligner mes erreurs s'il y en a.

Était-ce utile?

La solution

Vous pouvez absolument obtenir des messages plus anciens de Graph API; Il n'y a pas de limite (du moins pas que je sache). Utilisez le since et until paramètres pour reprendre les résultats, au lieu de offset:

https://graph.facebook.com/me/feed?access_token=[token]&until=1165474447

Documentation pour Pagination ne va pas très en profondeur since et until:

Lors de l'interrogation des connexions, il existe plusieurs paramètres utiles qui vous permettent de filtrer et de passer une page à travers des données de connexion:

Mais en gros, until C'est comme dire "donnez-moi des messages jusqu'à cette date", et puisque est similaire, "donnez-moi des messages depuis cette date". Ainsi, vous pouvez faire défiler jusqu'à ce que le flux d'un utilisateur en utilisant une boucle quelque chose comme ceci:

// pseudocode
timestamp = now
do {
  posts = graph.get(/me/feed?until=timestamp)
  if posts.length == 0: break;
  // process posts
  timestamp = posts[0].created_time // first should be the oldest, in theory
} while (1)

Remplacer until avec since et le plus ancien created_time Avec les plus récents à avancer dans le temps, par exemple pour saisir tous les messages plus récents depuis la dernière fois que l'utilisateur a exécuté l'application.

Autres conseils

Facebook a depuis a confirmé cela comme un bogue. Si vous avez toujours suivi le tracker de bogues de Facebook, cela signifie malheureusement qu'il y a très peu ou une chance qu'ils corrigeront cela.

Vous devrez paginer. La limite est limitée. Lisez s'il vous plaît http://developers.facebook.com/blog/post/478/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top