我一直在尝试将Facebook Connect添加到网站,但登录后似乎没有得到用户ID。因此,经过一些检查后,我发现了似乎是什么问题:< / p>
facebook库期望$ _REQUEST ['session']存在(在getSession()函数中),但是当我输出$ _REQUEST时,我得到了这个结构:
Array
(
[url]
[base_domain_AppID]
[AppID]
[AppID_user]
[AppID_ss]
[AppID_session_key]
[AppID_expires]
)
其中AppID是应用程序ID。
知道为什么会这样吗?
我看到$ _REQUEST ['session']应该有一些名为'uid','access_token'和'sig'的字段.'uid'是AppID_user,但我不知道其他两个。我想,如果没有其他解决方案,我可以将这些数据转换为它期望的对象,因此它可以传递validateSessionObject()函数。
我不知道这是否相关,但无论我是否启用cookie支持,都会发生这种情况。
我今天下载了这些库,所以我认为我没有使用它们的旧版本。
编辑:与此同时,我设法将$ _REQUEST中的大多数字段与会话中预期的字段匹配,除了没有名为'access_token'的字段。
答案 0 :(得分:1)
我遇到了同样的问题,问题是我自己生成了facebook身份验证网址
https://graph.facebook.com/oauth/authorize?client_id=$client_id&scope=$scope&redirect_uri=$redirect_uri
相反,当您使用facebook类创建登录URL时,它会将其生成为更长的版本,包括2个重要字段:return_session = 1,session_version = 3
如果auth url中未包含这些字段,则重定向不会生成会话值。