如何在php中获取用户的facebook uid

时间:2010-04-21 17:07:49

标签: php facebook canvas

嘿,我正在为facebook写一个画布应用程序。我使用命令:

$user_id = $facebook->require_login();

要获取用户ID,但在我的应用程序的前几页我不想要求登录,但如果用户已登录,我想知道用户ID是什么。基本上我需要一个get_login()命令,如果用户没有登录,它可能返回0或null。是否有类似的东西?

1 个答案:

答案 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。