1

私は Facebook コメント ボックス プラグインを使用しており、FQL を使用して Facebook からコメントの詳細を取得し、そのコメント データをアプリケーションのデータベースに保存できるように、comment.create JavaScript イベントもサブスクライブしています。

これまでのところ、(comment.create イベント ハンドラーに渡された) 新しいコメントの ID と href を受け取ると、次の FQL を使用してそのコメントの詳細を取得できます。

SELECT object_id, post_id, fromid, time, text, username 
FROM comment 
WHERE post_fbid='*** EVENT COMMENT_ID ***' AND object_id 
    IN (SELECT comments_fbid FROM link_stat WHERE url='*** EVENT HREF ***')

これはすべてうまくいきます。

この問題は、ユーザーがコメントに返信するときに発生します。この場合、上記のクエリはコメントの取得に失敗します。

いろいろ調べてみたところ、Facebook の「コメント」テーブルには、コメントへの返信を含む「コメント」フィールド (または関係、不明) があるようです。次のクエリを使用して、コメントへのすべての返信を取得することもできます。

SELECT comments
FROM comment 
WHERE post_fbid='*** EVENT COMMENT_ID ***' AND object_id 
    IN (SELECT comments_fbid FROM link_stat WHERE url='*** EVENT HREF ***')

FQL テスト コンソールをいじってみると、返信がこの「コメント」フィールドに追加されていることがわかります。ただし、すべての返信を取得しようとするのではなく、comment.create イベント ハンドラーで受け取った ID を持つ特定の返信を検索しようとしています。問題は、「コメント」がリンクされたテーブルではなくフィールドのように見えるため、クエリを実行できないことです。

他の誰かがこれに遭遇しますか?アドバイスをいただければ幸いです。

ありがとう。

4

1 に答える 1

0

これを試して:

SELECT text, time, id, likes, fromid, comments FROM comment WHERE   is_private = 0 AND 
object_id IN (SELECT comments_fbid FROM link_stat WHERE url ='YOUR_URL') or
object_id in (select post_fbid from comment where object_id in (select comments_fbid from link_stat where url ='YOUR_URL')) 
ORDER BY time DESC limit 0,10
于 2012-10-17T05:56:35.117 に答える