2012-01-07 220 views
-1

可能重复:
response.authResponse is null如何检查Facebook中所有用户的登录状态?

我已经开发与应用一个Facebook页面,

我想是,只要任何用户访问我的页面上,用户通过一个服务弹出消息时,只有当用户点击“like”按钮时,弹出窗口才会消失,如果用户已经喜欢该页面,弹出窗口不会出现,为此,我写下面的代码

FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
    var user_id = response.authResponse.userID; 
    var page_id = "app_id"; 
    var fql_query = "SELECT uid FROM page_fan WHERE page_id = "+page_id+"and uid="+user_id; 
    var the_query = FB.Data.query(fql_query); 
    the_query.wait(function(rows) { 
       if (rows.length == 1 && rows[0].uid == user_id) { 
        alert("liked the page"); 
        popup.hide() // hide the popup as user has clicked like button 
       } 
       else { 
        alert("not liked "); 
       } 
      }); 
    } 
    else if (response.status === 'not_authorized') { 

    } 
    else 
    { 
    alert("not logged in"); 
    } 
}); 

上面的代码工作正常,只有一个FB用户,其中之一是此页的管理员,对所有其他用户返回response.status === 'not_authorized'状态,所以我无法检索用户的登录信息,因为在这种情况下,我越来越null response.authResponse

有没有人有任何想法,如何检查所有用户的登录状态,而不是管理员只... ??

谢谢。

回答

0

如果你正在谈论一个页面标签的应用程序,并且你想知道的只是访问用户的“喜欢”状态,那么你所要做的就是解析传递给你的应用程序的signed_request。你可以阅读更多关于using and parsing Signed Requests here

signed_request中有一个user对象 - 您需要的信息位于该对象中。

+1

感谢lix,它真的有窍门,再次感谢 – mack 2012-01-07 13:38:00