2013-04-11 58 views
2

我正在爲Facebook創建框架應用程序。 下面的代碼工作對我好:Facebook api只爲我工作

function changeToHome() { 
    try { 
    var time = new Date(); 
    FB.api("/me", {fields: "id,first_name,last_name,picture"}, function(response) 
    { 
     window.location = '#home'; 
     var fname = encodeURIComponent(response.first_name); 
     var lname = encodeURIComponent(response.last_name); 
     var avatar = encodeURIComponent(response.picture.data.url); 
     var u = '?useradd='+response.id+"&fn="+fname+"&ln="+lname+"&p="+avatar+"&t="+time.getTime(); 
     document.getElementById('game_frame').src=('drop.html'+u); 
     $.ajax({ 
      url: 'stat-api.php'+u 
     }).done(function() { 
      //alert("done"); 
     }); 
    }); 
    } catch(ex) { 
     //alert(ex); 
    } 
} 

但如果我嘗試測試它trought其他acounts Facebook的API不起作用(我嘗試不同的瀏覽器,得到了相同的結果

+0

是您的應用發佈了嗎?在您的應用程序正在開發中時,您需要將人員添加到測試人員組中。你可以從https://developers.facebook.com/apps – 2013-04-11 16:53:36

+0

這樣做。我有兩個測試人員。他們都無法正常使用應用程序。對於他們「回覆」是不明確的:( – 2013-04-11 17:02:26

+0

你應該發佈你的解決方案作爲迴應,以便它與SO上其餘的解決問題更好地配合。 – 2013-04-17 13:36:04

回答

0

嘗試啓用。 (或禁用)沙盒模式。

+0

試過了,結果相同。 – 2013-04-12 09:54:29

0

解決了!它並沒有驗證我的應用程序!這是一個原因。

納入window.fbAsyncInit如下因素=函數(){...}

FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
    //var uid = response.authResponse.userID; //FACEBOOK_ID 
    //var accessToken = response.authResponse.accessToken;/ //ACCESS TOKEN 
    if (response.authResponse) { 
     // logged in and connected user, someone you know. 
     // YOUR CODE HERE 
      changeToHome() 
    } 
    }else { 
     attemptLogin(); 
    } 
    }); 

function attemptLogin(){ 
    FB.login(function(response) { 
     if (response.authResponse) { 
       // YOUR CODE HERE 
       changeToHome() 
     } else { 
      //if user didn't logged in or didn't authorize your application 
     } 
    }, {scope: 'offline_access,publish_stream,manage_pages,publish_actions,user_games_activity'}); //YOUR PERMISSION 
}