Получение сообщений и комментариев со страницы Facebook - PullRequest
4 голосов
/ 04 августа 2010

Я хочу получить все сообщения с данной страницы 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 "Присоединен!"(с этот пост ).Я не могу понять, что особенного в этом комментарии.

Есть какие-нибудь мысли?

1 Ответ

1 голос
/ 02 марта 2012

Я попытался найти решение, играя с 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 сообщениями, в зависимости от того, что больше, однако вы можете использовать зависящие от времени поля, такие как create_time, вместе с операторами FQL (например, <или>), чтобы получить гораздо больший диапазон сообщений.*

...