【问题标题】:Problems with Facebook PHP SDKFacebook PHP SDK 的问题
【发布时间】:2013-08-25 19:40:39
【问题描述】:

2 年前,我建立了一个使用 facebook 登录的网站,一切正常。昨天开始做一个新项目,遇到以下问题。我使用最新版本的SDK,服务器使用PHP 5.3.16,托管在iPage上。

  1. 登录无效。在我授予对应用程序的访问权限后,getUser() 始终返回 0。
  2. 当我使用 Javascript SDK(有效)登录时,api(/me) 不返回任何内容,但 api(/user_id) 有效。
  3. 注销链接不起作用,并在未注销我的应用的情况下将我重定向到 facebook 主页。

我在 PHP SDK 上使用了示例文件,所以我确信代码没有任何问题。所以肯定是我的服务器有问题,或者SDK本身有问题。我在 StackOverflow 和其他网站上阅读了数十个线程,但找不到任何解决方法。 由于有成千上万的网站运行 FB PHP SDK 没有问题,我很困惑我做错了什么。如有任何帮助,我将不胜感激。

【问题讨论】:

  • 一些修正建议操纵访问令牌,但 FB 明确表示,在使用 OAuth 时,访问令牌由 SDK 处理,您无需对其进行任何操作。

标签: facebook-php-sdk facebook-login


【解决方案1】:

在第 3 部分中,您可以使用 getLogoutURL() 中的下一个参数指定将用户发送到的 URL,它只是默认为 facebook。无论哪种方式,它所做的只是让你退出 facebook,如果你指定下一个,则在后台,或者如果没有,它不会阻止你的应用程序访问你的详细信息(不正确?)除此之外,我无能为力,因为我自己网站已暂停 2 周,因为我无法解决注销问题,第一次访问后,它总是设法获取用户 ID 并报告用户详细信息,即使未登录 FB。

【讨论】:

  • 我决定自己注销:$facebook->destroySession(); if (isset($_SESSION['fb_' . $facebook->getAppId() . '_code'])) { unset ($_SESSION['fb_' . $facebook->getAppId() . '_code']); } if (isset($_SESSION['fb_' . $facebook->getAppId() . '_access_token'])) { unset ($_SESSION['fb_' . $facebook->getAppId() . '_access_token']); } if (isset($_SESSION['fb_' . $facebook->getAppId() . '_user_id'])) { unset ($_SESSION['fb_' . $facebook->getAppId() . '_user_id']); }
  • 除非我误解了您的评论,否则我假设您将其放在您网站的注销部分?这不能解决我的问题。或者我只是误解了你的回复哈哈。我遇到的问题是,当退出 facebook 时,它仍然设法获取我的用户 ID 和我的用户数据以及我需要登录的所有内容(我按照 fb 开发页面上的教程进行操作) - 这是不应该的要做,但除了假设之外,这向我表明,任何人都可以像其他人一样登录我的网站,只需知道他们公开可用的 fb ID。仅使用我网站的注销按钮解决此问题无济于事
猜你喜欢
  • 1970-01-01
  • 2011-06-13
  • 2014-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多