0

私のウェブサイトには、次のコードを持つ 2 つの Facebook 接続ボタンがあります。

<div id="fb-root"></div>
            {literal}
            <script>             

              window.fbAsyncInit = function() {
                FB.init({
                  appId: {/literal}{$fb_app_id}{literal},
                  cookie: true,
                  xfbml:  true,
                  oauth:  true
                });                            

                FB.Event.subscribe('auth.login', function(resp) {
                    window.location.reload();
                });    

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

            <a class="facebook-connect" href="#" onclick="fb_login();return false;">facebook connect</a>    

            {literal}
            <script>
            function fb_login(){                                                      
              FB.login( function( response) {
                    if( response.authResponse){
                         // dont do anything, it will reload the page
                         window.location.reload();
                    }
                    else // user cancelled facebook connect
                    {
                        return false;
                    }
                }, {scope : 'email, user_about_me, user_birthday, user_location, friends_about_me, publish_actions, offline_access '});   

        }

その後、同じFacebook接続ボタンがありますが、クラスが異なります。

<a class="facebook" href="" >facebook connect</a>

FB.initただし、2 番目のクラスでは、 js-sdk を async でロードするようにしたくありません。だから、私はこのコードを使用しました。

$('.facebook').click( function(){

        $('.facebook-connect').click();
});

ただし、.facebookボタンをクリックすると、ダイアログが表示され、facebook はログイン資格情報 (電子メール/パスワード) を要求します。その後、ダイアログは空白になります。何か案は ?

4

0 に答える 0