2010-08-04 14 views
4

Je veux récupérer tous les messages d'une page facebook donnée avec les commentaires associés.Récupération des messages et des commentaires d'une page Facebook

J'ai écrit ce code (détails de l'application obfusqués, remplacez-les par les vôtres pour les exécuter).

<?php 
require_once('facebook.php'); 
$facebook = new Facebook(array(
    'appId' => 'MY_APP_ID', 
    'secret' => 'MY_APP_SECRET', 
    'cookie' => true, 
)); 

$pages = array(
    "stackoverflow" => 11239244970 
); 

$result = $facebook->api(array(
    'method' => 'fql.multiquery', 
    'queries' => '{ 
     "posts": "select post_id, source_id, actor_id, target_id, likes, message from stream where source_id = '.$pages["stackoverflow"].'", 
     "comments": "select post_id, text, username, fromid from comment where post_id in (select post_id from #posts)" 
    }' 
)); 

echo json_encode($result); 
?> 

posts renvoie les résultats attendus, mais comments rendements juste un commentaire.

Cet exemple interroge le stackoverflow facebook page

Le commentaire retour de la requête comments est « rejoint! » (à partir de this post). Je ne peux pas comprendre ce qui est spécial à propos de ce commentaire.

Avez-vous des questions?

+0

Avez-vous essayé une deuxième requête sans multiquery, avec juste une liste d'identifiants de poste séparés par des virgules? – serg

+0

J'ai essayé, pas de chance. – Giacomo

+1

Avez-vous réussi à résoudre ce problème? Si c'est le cas, comment? – pAkY88

Répondre

1

J'ai essayé de trouver une solution à jouer avec Graph Api

https://graph.facebook.com/me/fql?q=select message, comments from stream where source_id = 11239244970 

fonctionne, mais lors du retour des commentaires ne retourne que le dernier 2. Il est exaclty comment Facebook se montre le flux et les commentaires avec « Voir tous les commentaires XX " lien.

Pour interroger les messages et les commentaires peuvent être utilisés ensemble:

https://graph.facebook.com/fql?q={"posts":"select post_id,message, comments from stream where source_id = 11239244970","comments": "select post_id, text, username from comment where post_id in (select post_id from #posts)"}&access_token=... 

Selon Facebook:

Chaque requête de la table de flux est limitée aux 30 jours précédents ou 50 messages, Quoi qu'il en soit, vous pouvez utiliser des champs spécifiques au temps, tels que created_time, avec des opérateurs FQL (tels que < ou>) pour récupérer une plus grande plage de publications.