3

今日、私が作成した彼のウェブサイトで「Facebookログインボタン」が突然消えたと誰かが報告してくれました。実際、昨日は問題なく機能していました。何週間もコードをまったく変更していませんでした。7月、8月の変更を有効にしてからこの問題を回避するために、ウェブサイト

これは私のコードです

        <div id="fb-root"></div>
        <div class="fb-login-button" onlogin="Facebook_login()" autologoutlink="true">Login with Facebook</div> 
        <script>
            window.fbAsyncInit = function() {
            FB.init({
                    appId      : 'FB APP ID',
                    status     : false, 
                    cookie     : true,
                    xfbml      : true,
                    oauth      : true
                });
            };


            (function(d){
            var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
            js = d.createElement('script'); js.id = id; js.async = true;
            js.src = "//connect.facebook.net/en_US/all.js";
            d.getElementsByTagName('head')[0].appendChild(js);
            }(document));

          function Facebook_login () {
            FB.getLoginStatus(function(response) {
                if (response.status === 'connected') {
                    window.location = "THE URL TO PROCESS THE LOGIN";

                }
            });
          }                
        </script>
4

3 に答える 3

8

私たちのウェブサイトでも同じ問題が発生しました。Facebook がログイン ボタンの実装を変更したようで、現在は iframe 内に作成されています。また、「onlogin」属性もサポートされなくなりました (ドキュメントにはありません)。

FB SDK FB.login メソッドを使用して、独自のボタンを追加することで修正しました。

あなたにとっては、次のようになります(クリックイベントにjQueryを使用すると仮定します)

<div id="fb-root"></div>
        <button class="fb_login">Login with Facebook</button> 
        <script>
            window.fbAsyncInit = function() {
               FB.init({
                    appId      : 'FB APP ID',
                    status     : false, 
                    cookie     : true,
                    xfbml      : true,
                    oauth      : true
                });
                $(".fb_login").click(function() {
                   FB.login(Facebook_login);
                }); 
            };


            (function(d){
            var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
            js = d.createElement('script'); js.id = id; js.async = true;
            js.src = "//connect.facebook.net/en_US/all.js";
            d.getElementsByTagName('head')[0].appendChild(js);
            }(document));

          function Facebook_login () {
            FB.getLoginStatus(function(response) {
                if (response.status === 'connected') {
                    window.location = "THE URL TO PROCESS THE LOGIN";

                }
            });
          }                
        </script>
于 2012-05-15T09:55:22.193 に答える
3

こんにちは、今日から問題が発生しているのはあなただけではありません。
私のウェブサイトはボタンを正しく表示せず、ログインも壊れています。
これは、今日の更新で導入された Facebook 側のバグのようです。こちらを参照してください: http://developers.facebook.com/bugs/386085844776949およびこちら http://developers.facebook.com/bugs/250500218391321
FBにそれらを見てもらうためのバグ。

于 2012-05-15T09:55:47.563 に答える