2013-08-30 6 views
0

Comment puis-je obtenir les 50 dernières photos téléchargées par tous mes amis?FQL obtenir les 50 dernières photos requête renvoie erreur

je tente d'exécuter cette requête dans FQL:

SELECT pid, src 
FROM photo 
WHERE 
owner IN (SELECT uid1 FROM friend WHERE uid2=me()) 
OR pid IN (
    SELECT pid FROM photo_tag 
    WHERE subject in (SELECT uid1 FROM friend WHERE uid2=me()) 
) 
ORDER BY created DESC 
LIMIT 50 OFFSET 0 

Je dois obtenir 50 dernières photos de tous mes amis, ou que mes amis où tagué ...

quand je le lance dans l'explorateur API je reçois une erreur:

{ 
    "error": "Request failed" 
} 

Je sais que j'ai sufficen Becus permission quand je lance ces 2 requête i obtenir des résultats:

SELECT pid, src FROM photo WHERE owner =(me()) 

et

SELECT uid1 FROM friend WHERE uid2=me() 

EDIT: J'ai aussi essayé ..

SELECT pid, caption, aid, owner, link, src_big, src_small, created, modified FROM photo 
WHERE owner IN (SELECT uid1 FROM friend WHERE uid2=me()) 
and created >= 1377800559 
ORDER BY created DESC LIMIT 100 

comment puis-je obtenir plus d'informations? n'est-il pas possible d'exécuter une telle requête?

Répondre

1

Finnaly !!! Dernière publication Photos de tous les amis ...

SELECT pid, src, src_small, src_big, target_id, created, backdated_time 
FROM photo where pid in (
    SELECT attachment.media.photo.pid 
    FROM stream 
    WHERE filter_key IN (SELECT filter_key FROM stream_filter WHERE uid=me()) AND type = 247 
) 

que vous pouvez voir mon approche initiale était tout faux ... il est réellement nécessaire d'utiliser la table stream pour obtenir les derniers messages .. il pourrait être filtré pour obtenir seulement des photos postées et utiliser leur pid pour obtenir toutes les informations requises !!! YAY!

J'espère que cela aide d'autres qui rencontrent le même problème ..

+1

M heureux que vous avez craqué! –

0

Je ne sais pas pourquoi, mais une chose étrange se passe ici. Quand j'ai essayé votre query- je suis arrivé

Request failed

Puis, après avoir creusé un peu je l'ai remplacé SELECT uid2 FROM friend WHERE uid1 = me() avec les ID et la requête a fonctionné!

Ainsi, en tant que solution, vous pouvez d'abord essayer d'obtenir la liste des amis avec:

SELECT uid2 FROM friend WHERE uid1 = me() 

ensuite utiliser ce résultat dans votre requête AS-

SELECT pid, src 
FROM photo 
WHERE 
    owner IN (ID1, ID2, ID3 ...) 
    OR pid IN (
    SELECT pid FROM photo_tag 
    WHERE subject IN (ID1, ID2, ID3 ...) 
) 
ORDER BY created DESC 
LIMIT 50 OFFSET 0 

étrange, mais cela va travail!

+0

avez-vous essayé pour les IDs de tous vos amis? les gens pourraient avoir beaucoup d'amis je me demande s'il y a une limite de caractères à une requête FQL ... – Mortalus

+0

Désolé, je viens de l'essayer avec les IDs de tous mes amis et la requête semble retourner "Requête échouée" devinez qu'il y a une limite mais sa limite de caractère .. aucune autre idée de comment puis-je obtenir les 50 dernières photos récentes? – Mortalus

+0

Etes-vous sûr que ce n'est pas simplement une expiration? vous demandez beaucoup de données coûteuses à chercher – Igy

Questions connexes