$user_id = $facebook->require_login();
要获取用户ID,但在我的应用程序的前几页我不想要求登录,但如果用户已登录,我想知道用户ID是什么。基本上我需要一个get_login()
命令,如果用户没有登录,它可能返回0或null。是否有类似的东西?
答案 0 :(得分:2)
如果您正在编写FBML应用程序,那么在应用程序的每个页面上,Facebook都会在页面请求的查询字符串中传递一堆数据。这些参数都以fb_sig
为前缀,并为用户组成验证信息。您根本不需要查询API。
当您使用类似$facebook
之类的标准PHP客户端库实例化$facebook = new Facebook('api key','secret key');
对象时,Facebook代码会自动为您验证所有这些参数,并将结果存储为Facebook对象的一部分。
因此,您只需执行以下操作即可确定用户是否已登录:
$facebook = new Facebook('api key','secret key');
$fbId = $facebook->get_loggedin_user();
如果收到所有正确的参数,那么您将获得用户的Facebook ID。我相信你会得到null
。
请注意,如果您正在制作iframe应用,还有其他事项需要考虑,因为Facebook Connect会设置Cookie,当用户退出Facebook时,这些Cookie可能不一定会过期。签名始终有效,因此如果您从get_loggedin_user()
获得ID,则可以确定它是正确的ID。