私は 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 を持つ特定の返信を検索しようとしています。問題は、「コメント」がリンクされたテーブルではなくフィールドのように見えるため、クエリを実行できないことです。
他の誰かがこれに遭遇しますか?アドバイスをいただければ幸いです。
ありがとう。