因为当我使用函数getUser() 时没有得到正确的id?收据是之前登录工作的人的 ID,我必须重新加载页面。如何在不加载页面 2 次的情况下返回正确的 id?
问问题
110 次
1 回答
0
Facebook::getUser()
(如果您使用原始 PHP-SDK)从以下位置检索用户的详细信息: * URL 参数 * Facebook JS-SDK 或 PHP-SDK 设置的 Cookie * 应用程序会话
因此,除非活动会话(不是 Facebook 会话,而是用于您的应用程序的会话)存在并包含识别您的用户所需的所有详细信息,否则无法知道他的 Facebook 用户id
。
如果您无法id
通过调用getUser
它来获取用户,则意味着目前不存在该数据,您将需要对用户进行身份验证:
- 将用户重定向到由返回的 URL
Facebook:getLoginUrl()
- 等待 JS-SDK 自动更新用户登录状态(如果
status:true
已传递给 FB.init) FB.getLoginStatus
手动调用(JS-SDK)
要在加载相同的两次之前检索用户的详细信息,您有两个选项:
- 增加应用程序中的会话生命周期
- 将用户重定向到由返回的 URL
Facebook:getLoginUrl()
(这将加载您的页面两次,但第一次只会触发重定向),授权流程只会将用户带回您的应用程序,并提供其识别所需的所有详细信息。
于 2012-06-22T20:15:36.940 回答