9

私のウェブサイトでは HTML5 バージョンを使用していますFacebook Comment。私は自分の Facebook APP Id を持っています。

Graph-API、およびFQL(これがその方法だと思います) を使用して、自分の Web サイトに投稿されたすべてのコメントを一覧表示したいと考えています。

例 -

Page Title1
--Comment1
--Comment2
--Comment3

Page Title2
--Comment1
--Comment2
--Comment3

Page Title3
--Comment1
--Comment2
--Comment3

etc.

私を助けてください。

4

3 に答える 3

7

コメントを取得したいサブページの固定セットがある限り、2 つの異なる方法で可能です。

サブページが大量にある場合、または量が一定でない場合、適切なスケーラブルなソリューションはありません。多くの人がそれを探しています。

Web サイトのサブページの固定セットの場合、バッチ リクエストまたは FQL クエリを使用できます。

バッチリクエスト


まず、アクセス トークンが必要です。ブラウザに次の URL を入力するだけです (クレジットはこのWeb サイトにあります)。

https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=APP_ID&client_secret=APP_SECRET

And this is the javascript jquery code to make a batch request to fetch comments from several urls at once:

$.ajax({
  url: 'https://graph.facebook.com/',
  type : "POST",
  data: {
    access_token : 'YOUR_APP_ACCESS_TOKEN',
    batch : '[ \
    {"method":"GET","relative_url":"URL1"}, \
    {"method":"GET","relative_url":"URL2"} \
    ]'
  },
  success: function(data) {
    jdata = JSON.parse(data);
    $.each(jdata, function(index,value){
        jdata[index].body = JSON.parse(value.body);
        console.log(value.body);
    });
    // Do whatever you want with jdata
  }
});

FQL


inspired from this post

FB.api({
    method: 'fql.query',
    query: 'select text from comment where object_id in (select comments_fbid from link_stat where url="URL1" or url="URL2")'
  }, function(response) {
    // Do something with results
  });

結論

Facebook のこの制限のため、この機能をサポートしているように見える disqus.com に切り替える予定です (たとえば、このブログからわかるように(「最近のコメント」を検索してください)。

于 2012-05-02T11:21:58.007 に答える
1

Facebook は、サイトのすべてのコメントを一覧表示するのではなく、サイトのどこかに新しいコメントが投稿されたときに通知を受けるコードを実装することを望んでいます。

これを実現するには、コメントが投稿されているページに Javascript を配置して、自分自身にも通知する必要があります。

window.fbAsyncInit = function(){
    console.log("subscribing to comment create");
    FB.Event.subscribe('comment.create',function(response){
        console.log("facbeook comment created: " + JSON.stringify(response));
        var commentQuery = FB.Data.query('SELECT fromid, text FROM comment WHERE post_fbid=\'' + response.commentID + '\' AND object_id IN (SELECT comments_fbid FROM link_stat WHERE url=\'' + response.href + '\')');
        FB.Data.waitOn([commentQuery], function () {
            console.log("Facebook comment: " + JSON.stringify(commentQuery));
        }); 
    });
};

コメントをコンソールに記録するだけでなく、コメントをデータベースに保存できるサイトにコメントを送信するAJAXを実装するか、コメントが投稿されたことを通知する電子メールを自分に送信する必要があります。 .

于 2013-07-20T08:48:18.090 に答える
0

参考:Facebookコメントプラグイン

あなたのウェブサイトがhttp://mywebsite.com/blog.php?id=3Facebookのコメントプラグインを持っているとしましょう。この方法でコメントにアクセスできます

 https://graph.facebook.com/comments/?ids={YOUR_URL}.

{YOUR_URL} becomes http://mywebsite.com/blog.php?id=3

例 1: (開発者の Facebook ドキュメント Web サイトにインストールされたコメント プラグイン)

ウェブサイト: http://developers.facebook.com/docs/reference/plugins/comments

コメントを取得する: https://graph.facebook.com/comments/?ids=http://developers.facebook.com/docs/reference/plugins/comments

例 2:

ウェブサイト: http://techcrunch.com/2011/04/08/the-seven-most-interesting-startups-at-500-startups-demo-day/

コメントを取得: https://graph.facebook.com/comments/?ids=http://techcrunch.com/2011/04/08/the-seven-most-interesting-startups-at-500-startups-demo-日/

こちらもチェック

コメントをプルするためのサンプル コードは、このブログ投稿にあります。

于 2012-04-18T07:13:08.927 に答える