[英]Hybridauth - PHP - Facebook returned an invalid user id
好吧,我有兩個星期前使用facebook工作並正確登錄hybridauth,我沒有任何改變,今天早上我發現它無法正常工作。 我試圖將facebook應用程序(id和密鑰)切換到另一個之前也在工作的應用程序,但仍然在發生相同的情況。 我也嘗試運行hybridauth附帶的示例,它們也沒有工作,所以我知道不是來自我身邊的配置,也不是來自facebook app配置。
這是我嘗試登錄時告訴我的內容:
錯誤! 認證失敗。 用戶已取消身份驗證或提供商拒絕連接。
原始錯誤消息 :身份驗證失敗! Facebook返回了一個榮耀的用戶ID。
更新:我從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.