2012-10-15 6 views
0

Cela semble impossible à partir de maintenant .. quelqu'un peut-il me donner une requête appropriée ou un ensemble de requêtes qui peuvent le faire? Fondamentalement, j'ai besoin de tous les checkins de mes amis: les uns qu'ils ont enregistrés par eux-mêmes, ceux dans lesquels ils ont vérifié avec une image, ceux dans lesquels un utilisateur qui n'est pas mon ami les a marqués. tentative était la suivante:FQL Obtenir tous les checkins de mes amis?

SELECT checkin_id, author_uid, page_id, coords, tagged_uids, timestamp FROM checkin WHERE (author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) OR author_uid=me()) ORDER BY timestamp DESC LIMIT 50

Mais cela ne comprend pas checkins avec des images.

Ma deuxième tentative était la suivante:

SELECT id, author_uid, app_id, timestamp, tagged_uids, page_id, page_type, coords, type FROM location_post WHERE author_uid IN (SELECT uid2 FROM friend WHERE uid1=me())

Mais comme la clause WHERE indique, nous sommes à la recherche que pour les livraisons qui ont été créés par un ami, mais pas ceux dans lesquels mes amis sont marqués.

Ma prochaine tentative était la suivante:

SELECT id, author_uid, app_id, timestamp, tagged_uids, page_id, page_type, coords, type FROM location_post WHERE tagged_uids IN (SELECT uid2 FROM friend WHERE uid1=me())

Mais il retourne juste un jeu de données vide comme il se doit probablement.

Si vous ne soumettez pas 500 requêtes impaires, une pour chacun de mes amis, y a-t-il un moyen de le faire?

Les pointeurs sont très appréciés!

Merci,
Teja

Répondre

0

Est-ce besoin d'être en FQL ou ne l'API graphique ne suffit pas pour cela?

/me/friends?fields=checkins, bien que très lent (avertissement: avec beaucoup d'amis cela pourrait délai d'attente complètement), me renvoie une liste de mes amis avec un tableau de leurs checkins récents (et ceux des goûts de checkins, commentaires, etc.)

Vous pouvez également diviser en lots d'amis pour une meilleure performance:

/?fields=checkins&ids=[CSV LIST OF FRIENDS TO CHECK]

+0

Salut, je suis très nouveau à l'API, donc je ne savais pas que c'était une option. Je viens de l'essayer, mais je suis en train d'atteindre une limite de 600 demandes/600 secondes très rapidement (toutes les 2-3 demandes). Je devine même si je soumets une seule demande, d'une manière ou d'une autre ils sont traités comme des demandes séparées pour chaque ami en interne? Et AFAIK, ce sont des limites par application et pas seulement par limite d'utilisateur. Y a-t-il un moyen de contourner ces problèmes? –

+0

Les limites sont par session d'utilisateur (c.-à-d. Par jeton d'accès) - un appel pour toutes les données d'amis devrait être traité comme un seul appel autant que je sache, mais il y a aussi des limites d'utilisation du CPU. Frapper ceux-ci, il sera mentionné dans vos aperçus de l'application – Igy

0

J'ai récemment essayé de résoudre le même problème et trouver que l'utilisation du graphique via/me/amis fields = checkins était trop lent à être utilisable et parfois expire complètement.

Je suis juste tombé sur la fonction de recherche, qui semble faire exactement ce que je (et peut-être vous voulez).

Pour citer la documentation facebook:

Checkins: https://graph.facebook.com/search?type=checkin (Cette demande vous renvoie ou les dernières checkins de vos amis, ou checkins où vous ou vos amis ont été marqués, actuellement, il n'accepte pas aq = paramètre.)

Il y a des tonnes d'autres exemples ici sous Recherche: https://developers.facebook.com/docs/reference/api/

1

nous pouvons aussi utiliser suivant FQL pour obtenir des amis checkins et checkins où des amis sont taggées:

SELECT checkin_id FROM checkin WHERE author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) OR tagged_uids IN (SELECT uid2 FROM friend WHERE uid1 = me()) 
Questions connexes