2009-12-19 10 views
2

Je suis en train de jouer avec la méthode fql.multiQuery de l'API Facebook. J'utilise simplement le API Test Console, et essayant d'obtenir une réponse réussie mais n'arrive pas à comprendre exactement ce qu'il veut.Aide avec fql.multiQuery

Voici le texte que je suis entrée dans le champ « requêtes »:

{"tags" : "select subject 
from photo_tag 
where subject != 601599551 
and pid in (
select pid 
from photo_tag 
where subject = 601599551 
) 
and subject in (
select uid2 
from friend 
where uid1 = 601599551 
)", 
"foo" : "select uid from user where uid = 601599551"} 

Tout ça va me donner une erreur queries parameter: array expected.. J'ai également essayé à peu près toutes les permutations que je pouvais envisager impliquant l'emballage des paires nom/requête dans leurs propres accolades, l'ajout de parenthèses, l'ajout d'espaces, la suppression des espaces dans le cas où il ne voulait pas un tableau associatif (par exemple ceux qui regardent les modifications, je viens de découvrir ces choses merveilleuses maintenant ... oy), tout en vain. Y at-il quelque chose de douloureusement évident que je suis manquant ici, ou dois-je faire comme Chuck Norris Jon Skeet et simplement le fera-t-il pour faire de mon appel d'offres?


Mise à jour: Une note à toute personne qui trouve cette question maintenant: Le fql.multiquery test console semble être rompu. Vous pouvez tester votre requête en cliquant sur l'URL générée dans la console de test et en ajoutant manuellement le paramètre "requêtes" dans la chaîne de requête.

Répondre

4

Apparemment, je n'étais pas trop loin de la vérité avec le commentaire Jon Skeet ... Il semble que la console de test est très particulier sur ce que vous pouvez utiliser les espaces où:

http://bugs.developers.facebook.com/show_bug.cgi?id=6403

C'est ce que J'ai fini par avoir à faire avec mon code:

{"tags":"select subject from photo_tag where subject != 601599551 and pid in (select pid from photo_tag where subject = 601599551) and subject in (select uid2 from friend where uid1 = 601599551)","foo":"select uid from user where uid = 601599551"} 

Impressionnant. Parce que c'est lisible.

+1

+1 LOL @ lisible. – defines