我开发了一个带有应用的Facebook页面,
我想要的是每当有用户访问我的页面时,用户都会被一条弹出消息所服务,只有当用户点击“喜欢”按钮时,弹出窗口才会消失,如果用户已经喜欢该页面,弹出窗口将不会出现,这样做我写了以下代码
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'
状态,所以我无法检索用户登录信息,因为在此我得到空response.authResponse
有没有人知道,如何检查所有用户的登录状态,而不仅仅是管理员...... ??
感谢。
答案 0 :(得分:0)
如果您正在谈论页面标签应用,并且您想知道的只是访问用户的“喜欢”状态,那么您所要做的就是解析传递给您应用的signed_request
。您可以阅读有关using and parsing Signed Requests here的更多信息。
在signed_request
中有一个user
对象 - 您需要的信息就在该对象中。