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

Hybridauth-PHP-Facebook返回了无效的用户id,php,facebook,yii,yii-extensions,hybridauth,Php,Facebook,Yii,Yii Extensions,Hybridauth,两周前,我已经让hybridauth正常工作并使用facebook正确登录,我没有做任何更改,今天早上我发现它不工作。我试图将facebook应用程序(id和密钥)切换到另一个以前也可以使用的应用程序,但现在仍然如此。我还试着运行hybridauth附带的示例,但它们都不起作用,所以我知道这不是我这边的配置,也不是facebook应用程序配置 这是我尝试登录时告诉我的: 错误 身份验证失败。用户已取消身份验证或提供程序拒绝了连接 原始错误消息:身份验证失败!Facebook返回了一个无效的用户i

两周前,我已经让hybridauth正常工作并使用facebook正确登录,我没有做任何更改,今天早上我发现它不工作。我试图将facebook应用程序(id和密钥)切换到另一个以前也可以使用的应用程序,但现在仍然如此。我还试着运行hybridauth附带的示例,但它们都不起作用,所以我知道这不是我这边的配置,也不是facebook应用程序配置

这是我尝试登录时告诉我的:

错误 身份验证失败。用户已取消身份验证或提供程序拒绝了连接

原始错误消息:身份验证失败!Facebook返回了一个无效的用户id

  • 是否可能发生与我的服务器相关的事件
  • 在过去的24小时里,facebook有没有对他们的API做过任何改变
  • 有人做过类似的实验吗
更新: 我从一周前就开始工作了,为了让它工作,我发现其他人也有同样的问题(不到一个月前),他们17天前通过更新Facebook PHP SDK修复了它

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


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

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

HybridAuth错误(无效用户)是非常通用的,基本上它会查看curl是否返回某个内容,如果没有,则会给出该错误,但真正的原因在错误消息中不可见

我最后做的是下载facebook php sdk并使用默认示例

(更改了我的应用程序的密钥)

在这一点上,我能够看到以前使用HybridAuth时没有显示的新错误消息

PHP致命错误:未捕获卷曲异常:6:名称查找超时

这让我想到了这篇文章,它讨论了在base_facebook.php中增加CURL超时的问题,我做到了,瞧!又开始工作了

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

快速找出问题的一个好方法是使用FBSDK随时准备一个测试脚本进行调试

在第133行附近的base_facebook.php中

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

可能您的配置发送的是密钥而不是ID:

Facebook示例:

"keys"    => array ( "id" => "PUT_YOURS_HERE", "secret" => "PUT_YOURS_HERE" )
Twitter示例:

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

这是由于facebook graph api的api更改,您可以下载最新版本的facebook Hybridauth,目前第三方api不适用于facebook,因此您需要下载facebook sdk并将其放置在第三方目录下,您可以从下载


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

您找到解决此问题的方法了吗?我也有同样的问题有人能找到解决办法吗?我们的一些用户遇到了这个问题。经过一些研究,我让它工作了:)确保你的FB应用程序没有处于“沙盒”模式。Facebook中的应用程序配置应该关闭沙盒。此外,我还必须确保“嵌入式浏览器OAuth登录”被禁用。