2011-01-14 19 views
1

私はXFBMLとFBJSの両方を使用して自分のサイト上に2つの異なるメカニズムがあります:FB#XFBML = 1原因問題

  • を:FBとの個々のエントリのために同様のタグ
  • facebookでログインのFBオブジェクトは
  • を接続

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

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

紛失しているものがありますか?

お手数ですがお寄せいただきありがとうございます。

答えて

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'}); 
} 
+0

I _do_にはどちらか一方のみが含まれていますが、1つのバージョンを入れるともう一方のバージョンが中断されます。 – matthewdunnam

0

は、あなたのhtmlタグ

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

にこののxmlnsを追加し、「all.jが含まれますs "

関連する問題