簡體   English   中英

Hybridauth - PHP - Facebook返回了無效的用戶ID

[英]Hybridauth - PHP - Facebook returned an invalid user id

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

有了這個,我設法讓一切正常,但現在發生了同樣的錯誤,即使這些變化(工作一周后)。

我有類似的問題,我相信在我的情況下,我找到了解決方案,也許它會幫助其他人。 (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',

也許您的配置發送KEY而不是ID:

Facebook示例:

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

Twitter示例:

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

這是由於facebook圖api的api更改,你可以下載最新版的Hybridauth為facebook https://github.com/hybridauth/hybridauth ,目前第三方api不適用於facebook所以你需要下載facebook sdk和地方在第三方目錄下,您可以從https://github.com/facebook/php-graph-sdk下載。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM