【问题标题】:Facebook SDK PHP doesn't work in Google-Chrome?Facebook SDK PHP 在 Google-Chrome 中不起作用?
【发布时间】:2011-09-19 20:08:52
【问题描述】:

好的,所以我从 Github 下载了 Facebook 的 PHP SDK 的最新副本,将其上传到测试 Web 服务器并运行 SDK 附带的示例。使用 Google-Chrome(最新版本,未安装任何小部件)运行示例,它会引导我完成 Facebook 流程,但是在成功登录/连接的重定向时,我的会话只有一个变量“状态”,并说我仍然没有连接。我在 Facebook 上查看我已安装的应用程序,它肯定已安装。

起初我认为我的会话或浏览器有问题,所以我在 Safari、FireFox、Opera 甚至 Internet Explorer 7 中尝试了相同的过程。一切正常!!

Google-Chrome 是否存在已知问题?

至于任何代码,我没有改变任何东西,我使用的是 Facebook SDK PHP Github 最新分支中的任何内容。

任何想法或是否有人遇到与 Google-Chrome 相同的问题,这真的很令人沮丧,因为 Google-Chrome 将是我的首选浏览器,这意味着我将不得不在不同的浏览器上测试我的 Facebook 应用程序,并且如果它公开,Google-Chrome 的用户根本不会体验我的应用程序。

【问题讨论】:

  • 您的控制台是否有任何错误? (当然是在谈论 javascript)
  • PHP 代码独立于浏览器。 PHP SDK 在 Chrome 上运行良好。
  • 没有错误,每当 Facebook 重定向回 Chrome 时,我会话中的唯一变量是“状态”。在其他浏览器中,有 3 个变量“userid”、“access_token”和“code”。
  • 是的 PHP 是独立于浏览器的,这就是为什么它让我很沮丧,它一定与 chrome 正在破坏的会话或重定向有关:(
  • 我在 php SDK 上花了很多时间。在 Internet Explorer 上我可以登录,但在 chrome 上我经常收到:“跨站请求伪造验证失败。来自 URL 和会话的“状态”参数不匹配。”

标签: php facebook google-chrome facebook-graph-api sdk


【解决方案1】:

在 Options->Under the hood->Content settings->Cookies 中检查您的 Chrome 配置,并确保未选中“Block all third-party cookies without exception”框。

【讨论】:

    【解决方案2】:

    我相信我在使用 IE6 时遇到了类似的问题,请将其放在 facebook.php 文件的最上面一行:

    header('P3P: CP="CAO PSA OUR"');
    

    这样可以解决问题。


    编辑 (adlawson)

    由于对P3P header的解释不够清楚,我再补充一点。

    • Facebook 建议将标头作为在 IE6 上运行的 iFrame 中的应用程序的修复程序,如 described here
    • P3P 标头用于简单地声明站点从客户端使用的信息,如described on wikipedia

    此答案不能解决 Chrome 中的问题,但可能对 IE6

    中的问题有用

    【讨论】:

    • 显然这是所有版本的 IE 的问题。
    【解决方案3】:

    header('P3P: CP="CAO PSA OUR"');

    ^^ 解决了我的 Chrome 问题。

    【讨论】:

      猜你喜欢
      • 2016-02-01
      • 1970-01-01
      • 2012-02-26
      • 2014-07-17
      • 1970-01-01
      • 1970-01-01
      • 2014-07-11
      • 2011-04-01
      • 1970-01-01
      相关资源
      最近更新 更多