Hybridauth - PHP - Facebook返回了无效的用户ID

时间:2012-12-28 10:55:22

标签: php facebook yii yii-extensions hybridauth

嗯,我有两个星期前使用facebook工作和登录正确的hybridauth,我没有任何改变,今天早上我发现它无法正常工作。我试图将facebook应用程序(id和密钥)切换到另一个之前也在工作的应用程序,但仍然在发生相同的情况。我也尝试运行hybridauth附带的示例,但它们都没有工作,所以我知道不是来自我的配置,也不是来自facebook app配置。

当我尝试登录时,这就是告诉我的事情:

错误! 认证失败。用户已取消身份验证或提供商拒绝连接。

原始错误消息:身份验证失败! Facebook返回了一个荣耀的用户ID。

  • 可能会发生与我的服务器相关的事情吗?
  • Facebook在过去24小时内对其API进行了任何更改吗?
  • 有人尝试过类似的东西吗?

更新: 我让它在1周前工作,为了让它正常工作我发现其他人之前(不到1个月前)有相同的问题,他们通过更新Facebook PHP SDK修复了它17天前。

以下是GitHub的链接,您可以在其中查看修复此问题的更改:

https://github.com/F21/hybridauth/commit/3b115ee3abb5afbf44c37082e63aa8b056bf550c

有了这个,我设法让一切正常,但现在发生了同样的错误,即使这些变化(工作一周后)。

3 个答案:

答案 0 :(得分:2)

我有类似的问题,我相信在我的情况下,我找到了解决方案,也许它会帮助其他人。 (CURLOPT_CONNECTTIMEOUT)

HybridAuth错误(无效用户)是非常通用的,基本上它看起来curl是否返回一些东西,如果没有,则给出该错误,但真正的原因在错误消息中不可见。

我最终做的是下载facebook php sdk并使用默认示例https://github.com/facebook/facebook-php-sdk/blob/master/examples/example.php

(将密钥更改为我的应用)

此时我能够看到使用HybridAuth

之前未显示的新错误消息

PHP致命错误:未捕获的CurlException:6:名称查找超时

这指向了我这篇文章http://milkcodes.blogspot.com/2010/12/php-fatal-error-uncaught-curlexception.html,讨论了我在base_facebook.php中增加了CURL的超时,我和Voila!再次开始工作。

许多帖子中的基本问题是CURL连接主要负责这些问题(https,timeout,nslookup等)。

快速解决问题的一个好方法是使用fb sdk保存测试脚本以便进行调试。

在第133行的base_facebook.php中

public static $CURL_OPTS = array(
    CURLOPT_CONNECTTIMEOUT => 30,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 60,
    CURLOPT_USERAGENT      => 'facebook-php-3.2',

答案 1 :(得分:0)

也许你的配置发送的是KEY而不是ID:

Facebook示例:

"keys"    => array ( "id" => "PUT_YOURS_HERE", "secret" => "PUT_YOURS_HERE" )

Twitter示例:

"keys"    => array ( "key" => "PUT_YOURS_HERE", "secret" => "PUT_YOURS_HERE" )

答案 2 :(得分:0)

这是由于facebook图api的api更改,你可以下载最新版的Hybridauth for facebook https://github.com/hybridauth/hybridauth,目前第三方api不适用于facebook所以你需要下载facebook sdk并将其置于第三方目录,您可以从https://github.com/facebook/php-graph-sdk下载。

下载后,您可能需要配置facebook sdk自动加载文件。