10

好吧,自 2 周前以来,我已经使用 facebook 正确工作并登录了 hybridauth,我没有任何更改,今天早上我发现它无法正常工作。我试图将 facebook 应用程序(id 和密钥)切换到另一个以前也可以工作的应用程序,但仍然发生相同的情况。我还尝试运行 hybridauth 附带的示例,但它们都不起作用,所以我知道这不是我身边的配置,也不是来自 facebook 应用程序配置。

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

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

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

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

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

这是 GitHub 的链接,您可以在其中查看解决此问题的更改:

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

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

4

3 回答 3

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 的测试脚本以方便调试。

在第 133 行附近的 base_facebook.php

public static $CURL_OPTS = array(
    CURLOPT_CONNECTTIMEOUT => 30,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 60,
    CURLOPT_USERAGENT      => 'facebook-php-3.2',
于 2013-03-07T14:23:02.843 回答
0

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

脸书示例:

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

推特示例:

"keys"    => array ( "key" => "PUT_YOURS_HERE", "secret" => "PUT_YOURS_HERE" )
于 2014-08-22T18:02:03.410 回答
0

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

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

于 2017-03-30T12:29:46.690 回答