0

ユーザーが自分のサイトから自分のステータスを更新できるように、Facebook を自分の Web ページに統合しようとしています。現在、ユーザーがステータスを更新するためにクリックするボタンがあり、そのボタンは updateFacebookStatus() 関数を呼び出します。このボタンをすぐにクリックすると、「www.facebook.com を待機中」という空白のウィンドウが表示されます。このウィンドウは、許可を求める必要がある場所ですが、ウィンドウがタイムアウトするだけです。任意のアイデア: 関数 updateFacebookStatus() のコードは次のとおりです。

    function updateFacebookStatus()
    {

//Ask for permissions
    FB.login(function(response) 
    {

    }, {scope:'publish_stream, offline_access,manage_pages'});

     FB.getLoginStatus(function(response) 
     {

//If user is logged it and given permissions update status
      if (response.status === 'connected') 
      {

        new_status = document.getElementById('FacebookBody').value;

        //update status
        FB.api(
        {
            method: 'status.set',
            status: new_status
        },
        function(response)
        {
            if(response == 0)
            {
                alert("Your Facebook Status Was Not Updated.");
            }
            else
            {
                alert("Your Facebook Status Was Updated");
            }
        }

      );} 
      else 
      {
        window.location.href = "#home";
      }
     });
    }

私のhtmlファイルでは、次のコードを使用してFacebook javascript sdkを取得します。

        <script src="http://connect.facebook.net/en_US/all.js"></script>
        <script>
              FB.init({
                appId  : 'XXXXXXXXXXXXX',
                status : true, // check login status
                cookie : true, // enable cookies to allow the server to access the session
                xfbml  : true, // parse XFBML
                channelUrl : 'http://www.XXXXX.com/channel.html', // channel.html file
                oauth  : true // enable OAuth 2.0
              });

              // Load the SDK Asynchronously
              (function(d){
                 var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
                 if (d.getElementById(id)) {return;}
                 js = d.createElement('script'); js.id = id; js.async = true;
                 js.src = "//connect.facebook.net/en_US/all.js";
                 ref.parentNode.insertBefore(js, ref);
               }(document));
        </script>
4

1 に答える 1

0

問題と関係があるかどうかはわかりませんが、同じスクリプトを2回呼び出すことに注意してください。1回は<script src="http://connect.facebook.net/en_US/all.js"></script>タグを介して、もう1回は下の非同期関数呼び出しを介して呼び出します。// Load the SDK Asynchronously

于 2012-05-17T22:40:28.843 に答える