2011-09-04 154 views
0

我有这个Facebook的js api代码,它一直工作到一天回来... 现在它已经突然停止工作.. 即时通讯使用它为一个拼贴项目,其可能我的合作伙伴可能已经拨弄着它,但我不能似乎发现了什么不对的地方......Facebook的api突然停止工作

<div id="fb-root"></div> 
    <script src="http://connect.facebook.net/en_US/all.js"></script> 
    <script type="text/javascript" > 
    var access_token; 
    FB.init({ 
     appId:'XYZ', 
     cookie:true, 
     status:true, 
     xfbml:true 
    }); 

    FB.Event.subscribe('auth.login', function(response) { 
           login_event(); 
      }); 

    function login_event(){ 
     FB.api("/me",function(user){ 
      var request = new XMLHttpRequest(); 
      request.onreadystatechange=function(){ 
      uid = user.id; 
      if(request.readyState==4 && request.status==200){ 
        $("#middle").load("login_manager.php?uid="+uid); 
       } 
      } 
      request.open("GET", "sessions.php?uid="+uid, true); 
      request.send(); 

     }) 
    } 

    if(navigator.appCodeName=="Mozilla"){ 

     FB.getLoginStatus(function(response) { 

      document.getElementById("middle").innerHTML = "<img src=\"../images/loading-round2.gif\">"; 
      if (response.session) { 
       access_token = response.session.access_token; 
       FB.api('/me', function(user) { 
        if (user!=null) { 
        var uid = user.id; 
        var request = new XMLHttpRequest(); 
        request.open("GET", "sessions.php?uid="+uid, true); 
        request.send();   
        request.onreadystatechange=function(){ 
         if(request.readyState==4 && request.status==200){ 
           $("#middle").load("login_manager.php"); 
           } 
          } 
         } 
        }); 
       } 
       else{ 
        document.getElementById("middle").innerHTML = '<fb:login-button perms="email,user_checkins,offline_access,publish_stream">Login with Facebook</fb:login-button>'; 
        FB.XFBML.parse(document.getElementById('middle')); 
       }    
      }); 

     } 



    </script> 

它一点儿也不似乎进入了getLoginStatus()函数

+0

问题,是我的应用程序ID是正确的在实际的代码...并没有任何的Facebook的例子似乎工作要么(我只是代替应用程序ID) –

回答

0

它已经开始工作了.. 正是在Facebook的结束

0

您可以使用firebug或alert语句来调试您的javascript。今天我尝试了以下JS类似于你的脚本,这个工作对我来说:

<fb:login-button autologoutlink="true"></fb:login-button>  
    <div id="fb-root"></div>  
    <script> 
     window.fbAsyncInit = function() { 
      FB.init({ 
       appId: '159618137417054',//enter your app id 
       status: true, 
       cookie: true, 
       xfbml: true 
      }); 
      FB.Event.subscribe('auth.login', function (response) { 
       window.location.reload(); 
      }); 
     }; 
     (function() { 
      var e = document.createElement('script'); 
      e.type = 'text/javascript'; 
      e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
      e.async = true; 
      document.getElementById('fb-root').appendChild(e); 
     }()); 
      alert('FB API Test') 
     FB.api('/me', function (response) { 
      alert(response.name) 
      alert(response.id);//now my facebook ID is available to javascript 
     }); 
    </script> 
+0

我已经尝试过萤火虫和chromes开发人员工具.. 都不给我任何错误..我复制粘贴您的代码,并给我的名称和ID为“undefined” –

+0

当FB登录按钮更改为“注销”时,您是否尝试进行浏览器刷新? FB登录按钮是否完全显示,是否更改为“注销”?我可以检查的测试是在这里http://niklas-app.appspot.com/user/login我可以显示一个登录按钮,通过Facebook进行身份验证并通过javascript显示我的Facebook名称和ID。如果FB登录按钮没有更改为“注销”,那么在某处出现了错误。我可以尝试原始问题中的代码,看看它是如何比较的。 –

+0

thers东西额外的你需要添加到他的Facebook的按钮标签为它改变.. ,我不希望它改变为注销..实际上,我显示的用户信息,而不是按钮 –