1

私のサイトには、xfbmlとfbjsの両方を使用する2つの異なるメカニズムがあります。

  • 個々のエントリのFB:Likeタグ
  • fbconnectを使用したFacebookログイン用のFBオブジェクト

私の問題は、ページに「all.js」を含めると、ログインスクリプトは機能しますが、fb:likeタグが機能しないことです。

「all.js#xfbml = 1」を含めると、fb:likeタグが再び機能しますが、FBオブジェクトが未定義になり、ログインコードが機能しなくなりました。

足りないものはありますか?

あなたが与えることができるどんな助けにも前もって感謝します。

4

2 に答える 2

1

スクリプト参照を1回だけ含め、ページが読み込まれたときにスクリプトでinitを呼び出す必要があります。これは、fb:likeボタンまたはログインスクリプトのいずれかに使用できます。

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
  FB.init({
    appId  : 'YOUR APP ID',
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
  });
</script>

これの鍵は、xfbmlをtrueに設定することです(これは#xfbml = 1が行うことです)。そのセットがない場合、「いいね」ボタンはレンダリングされません。

ログインイベントをサブスクライブする場合は、FB.init()呼び出しの後に次のスクリプトを追加するだけです。

  FB.Event.subscribe('auth.login', function(response) {
    window.location.reload(); // or something else...
  });

そして、ユーザーがリンクやボタンなどをクリックしたときにのみ起動されるログインスクリプトがここにあります。

function doLogin() {
   FB.login(function(response) {
     if (response.session) {
       if (response.perms) {
         // user is logged in and granted some permissions.
         // perms is a comma separated list of granted permissions
       } else {
         // user is logged in, but did not grant any permissions
       }
     } else {
       // user is not logged in
     }
   }, {perms:'read_stream,publish_stream,offline_access'});
}
于 2011-01-18T02:39:00.457 に答える
0

このxmlnsをhtmlタグに追加します

xmlns:fb="http://www.facebook.com/2008/fbml"

「all.js」を含めます

于 2011-01-24T09:36:24.460 に答える