2012-02-22 1 views
-3

私はFacebookのコメントにイベントリスナーを追加しようとしています。スタックオーバーフローや、FB開発者ドキュメントや古い開発者フォーラムで、私がここで見つけたすべてのものを試してみました。 コメントは正常に機能していますが、私はそれらをモデレートすることもできますが、イベントはまったく発生していません... FBMLタグを複数のfb:comments FBMLタグとともに使用しています。FBコメントイベントcomment.createとcomment.removeが動作しない

window.fbAsyncInit = function() { 
    FB.init({ 
     appId: 'myAppId', 
     status: true, 
     cookie: true, 
     xfbml: true, 
     oauth: true 
    }); 

    FB.Event.subscribe('comment.create', 
     function (response) { 
      console.log('create', response); 
     }); 
    FB.Event.subscribe('comment.remove', 
     function (response) { 
      console.log('remove', response); 
     }); 

}; 
(function() { 
    var e = document.createElement('script'); e.async = true; 
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
    document.getElementById('fb-root').appendChild(e); 
}()); 

と私のHTML::ここに私のjavascriptのコードである

<fb:comments class="fb-comments" href="myFirstCommentUniqueURL" data-num-posts="2" data-width="440" notify="true" migrated="1"></fb:comments> 
<fb:comments class="fb-comments" href="mySecondCommentUniqueURL" data-num-posts="2" data-width="440" notify="true" migrated="1"></fb:comments> 
<fb:comments class="fb-comments" href="myThirdCommentUniqueURL" data-num-posts="2" data-width="440" notify="true" migrated="1"></fb:comments> 
<fb:comments class="fb-comments" href="myFourthCommentUniqueURL" data-num-posts="2" data-width="440" notify="true" migrated="1"></fb:comments> 

ヒントについての通知= "真" と= "1" FB移行:、私はスタックオーバーフローにここで見つけるコメントタグparametrsをが、彼らは役に立たなかった。また、複数のinit呼び出しがないかどうかを確認しましたが、ページ全体でも1つです。

だから私は何を間違えているのか分かりません。

+0

ようになり、それを自分で答え、正しいとマークしなければなりません。また、 'Shift' +' F5'(リフレッシュ+バイパスキャッシュ)をお勧めします。 – Jay

答えて

2

FBオブジェクトを初期化しようとすると、必要なjavascriptファイルが含まれているため、コードスニペットを逆にする必要があります。

ように、コードを使用すると、問題を修正した場合、この

<script> 
//INCLUDE THE SCRIPT FIRST 
(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId={YOURAPPID}"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 


//INITIALIZE THE OBJECTS 
window.fbAsyncInit = function() { 
    FB.init({ 
     appId: '{YOURAPPID}', 
     status: true, 
     cookie: true, 
     xfbml: true, 
     oauth: true 
    }); 

    //AND THOSE WILL FIRE THE EVENTS :) 

    FB.Event.subscribe('comment.create', 
     function (response) { 
      console.log('create', response); 
     }); 
    FB.Event.subscribe('comment.remove', 
     function (response) { 
      console.log('remove', response); 
     }); 

}; 
+0

はい、正しく、コードの方が高いはずですが、どちらの方法でも動作します。とにかく私はinit関数の上に移動しました。それを指摘するためのThx。 – iguana007

関連する問題