Получение сообщений и комментариев со страницы Facebook

Я хочу получить все сообщения с данной страницы facebook вместе с соответствующими комментариями.

Я написал этот код (детали приложения запутаны, замените его собственным, чтобы запустить его).

<?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 возвращает ожидаемые результаты, а comments возвращает только один комментарий.

Этот пример запрашивает страницу stackoverflow в facebook.

Комментарий, возвращенный из запроса comments: «Присоединился!» (из заголовка этот пост). Не могу понять, что особенного в этом комментарии.

Любые мысли?


person Giacomo    schedule 04.08.2010    source источник
comment
Вы пробовали второй запрос без мультизапроса, только со списком идентификаторов сообщений, разделенных запятыми?   -  person serg    schedule 04.08.2010
comment
Вам удалось решить эту проблему? Если да, то как?   -  person pAkY88    schedule 12.02.2012


Ответы (1)


Я пытался найти решение, играя с Graph Api.

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

работает, но при возврате комментариев он возвращает только последние 2. Точно так же сам Facebook показывает поток и комментарии со ссылкой «Просмотреть все комментарии XX».

Для совместного запроса сообщений и комментариев можно использовать:

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=...

Согласно Facebook:

Каждый запрос таблицы потока ограничен предыдущими 30 днями или 50 сообщениями, в зависимости от того, что больше, однако вы можете использовать зависящие от времени поля, такие как created_time, вместе с операторами FQL (такими как ‹ или >), чтобы получить гораздо больший диапазон сообщения.

person Alexander Nenkov    schedule 01.03.2012