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

Edu*_*lgo 10 php facebook yii hybridauth yii-extensions

好吧,我有两个星期前使用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

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

小智 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的超时,瞧!又开始工作了。

许多帖子中的根本问题是 CURL 连接是造成这些问题的主要原因(https、超时、nslookup 等)

快速解决这个问题的一个好方法是保留带有 fb sdk 的测试脚本以方便调试。

在base_facebook.php第133行附近

public static $CURL_OPTS = array(
    CURLOPT_CONNECTTIMEOUT => 30,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 60,
    CURLOPT_USERAGENT      => 'facebook-php-3.2',
Run Code Online (Sandbox Code Playgroud)