0

因为当我使用函数getUser() 时没有得到正确的id?收据是之前登录工作的人的 ID,我必须重新加载页面。如何在不加载页面 2 次的情况下返回正确的 id?

4

1 回答 1

0

Facebook::getUser()(如果您使用原始 PHP-SDK)从以下位置检索用户的详细信息: * URL 参数 * Facebook JS-SDK 或 PHP-SDK 设置的 Cookie * 应用程序会话

因此,除非活动会话(不是 Facebook 会话,而是用于您的应用程序的会话)存在并包含识别您的用户所需的所有详细信息,否则无法知道他的 Facebook 用户id

如果您无法id通过调用getUser它来获取用户,则意味着目前不存在该数据,您将需要对用户进行身份验证:

  • 将用户重定向到由返回的 URLFacebook:getLoginUrl()
  • 等待 JS-SDK 自动更新用户登录状态(如果status:true已传递给 FB.init)
  • FB.getLoginStatus手动调用(JS-SDK)

要在加载相同的两次之前检索用户的详细信息,您有两个选项:

  1. 增加应用程序中的会话生命周期
  2. 将用户重定向到由返回的 URL Facebook:getLoginUrl()(这将加载您的页面两次,但第一次只会触发重定向),授权流程只会将用户带回您的应用程序,并提供其识别所需的所有详细信息。
于 2012-06-22T20:15:36.940 回答