4

関連するコメントとともに、特定の 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コメントは 1 つだけ返します。

この例では、 stackoverflow facebook ページを照会します

クエリから返されるコメントcommentsは「Joined!」です。(この投稿から)。このコメントの何が特別なのか理解できません。

何か考えはありますか?

4

1 に答える 1

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

フェイスブックによると:

ストリーム テーブルの各クエリは、過去 30 日間または 50 投稿のいずれか大きい方に制限されますが、created_time などの時間固有のフィールドを FQL 演算子 (< または > など) と共に使用して、はるかに広い範囲の投稿を取得できます。投稿。

于 2012-03-01T22:04:47.580 に答える