Facebook Connect-同时使用FBML和PHP客户端

Facebook Connect-同时使用FBML和PHP客户端,php,facebook,Php,Facebook,我正在做我的第二个Facebook连接网站。在我的第一个站点上,我使用facebook coonect FBML登录用户,然后我可以通过PHP客户端访问其他信息。对于这个网站,使用相同的代码,它似乎不起作用。我希望有人能够使用Facebook按钮登录: <fb:login-button length="long" size="medium" onlogin="facebook_onlogin();"></fb:login-button> 问题是PHP客户端认为我没有会话

我正在做我的第二个Facebook连接网站。在我的第一个站点上,我使用facebook coonect FBML登录用户,然后我可以通过PHP客户端访问其他信息。对于这个网站,使用相同的代码,它似乎不起作用。我希望有人能够使用Facebook按钮登录:

<fb:login-button length="long" size="medium" onlogin="facebook_onlogin();"></fb:login-button>
问题是PHP客户端认为我没有会话密钥,所以$userID永远不会被设置。如果我用我的facebook ID(登录时使用的ID)覆盖$userID,则会出现以下错误:

异常“FacebookRestClientException”,在C:\wamp\www\mab\application\Facebook\facebookapi\u php5\u restlib.php:3003中显示消息“调用此方法需要会话密钥”


如果我取消对require_login()的注释,它将获得一个会话ID,但它会大量重定向页面并中断我的AJAX调用。我使用的代码与我在另一个网站上成功使用的代码相同。有人知道为什么PHP客户端在用户使用connect按钮登录后不知道会话ID吗?任何想法都将不胜感激。谢谢

您可以使用以下方法直接从Cookie中提取用户id,无需API调用:

$facebook->get_loggedin_user();

请注意,这是在主
$facebook
对象上,而不是它包含的
api\u client
对象上。

切勿尝试从localhost使用facebook connect和PHP客户端。。。。这就是答案。你可以让它工作,但它会导致一些“隐藏”问题,当你在公共领域工作时不必处理这些问题。

嘿,除非我调用$facebook->require_login(),否则这仍然无法获取ID;功能。我是否可以调用其他函数来设置PHP客户端的会话ID?或者是否有方法从PHP获取用户信息(名字、姓氏等)?确保您拥有一组有效的Facebook Cookie,这些Cookie应该在您使用按钮登录时由Facebook connect JS库创建。如果用户尚未通过Connect登录,则无法从get_loggedin_user()获取任何信息[因为没有人登录]。不,如果没有API调用,您无法获取名字/姓氏等;只有用户id。
$facebook->get_loggedin_user();