2012-12-11 66 views
7

沒有發現我試圖連接到LinkedIn的API,但每次我試圖訪問它,我得到以下錯誤:致命錯誤:類「的OAuth」在

Fatal error: Class 'OAuth' not found in /home/vhosts/*/test.php on line 8

我使用的是免費服務器在000WebHost上,我讀過免費服務器有時不支持OAuth。我在另一個免費服務器上嘗試了它,並且得到相同的錯誤消息,所以我的問題是如何檢查服務器是否支持使用OAuth?

這裏是我的代碼:

// Fill the keys and secrets you retrieved after registering your app 
$oauth = new OAuth("abcd123456", "efgh987654"); 
$oauth->setToken("abcd1234-efgh987-9988", "9876abcd-123asdf-1122"); 

$params = array(); 
$headers = array(); 
$method = OAUTH_HTTP_METHOD_GET; 

// Specify LinkedIn API endpoint to retrieve your own profile 
$url = "http://api.linkedin.com/v1/people/~"; 

// By default, the LinkedIn API responses are in XML format. If you prefer JSON, simply  specify the format in your call 
// $url = "http://api.linkedin.com/v1/people/~?format=json"; 

// Make call to LinkedIn to retrieve your own profile 
$oauth->fetch($url, $params, $method, $headers); 

echo $oauth->getLastResponse(); 

的按鍵都只是替換上LikedIn開發的那些入門指南。

非常感謝您的幫助。

回答

8

OAuth是PECL擴展,它必須編譯爲PHP或編譯爲擴展。

大多數服務器默認情況下不會有它,因爲它確實是不是每個人都可能會使用。你可以要求你的主機安裝它,或者如果你有能力在服務器上編譯它,如果使用CGI的話。如果你運行phpinfo();並查找單詞OAuth,如果你有它,它會顯示出來,否則你不會。


更新:使用https://github.com/Lusitanian/PHPoAuthLib代替PECL。

0

試試看here。有一個如何通過OAuth php class使用linkedin api的例子,不是擴展名。

+0

我同意使用PECL擴展是最好的方式,但在共享主機中是一個問題。所以選擇合適的解決方案。 –

1

我使用hostgator託管和有這個問題,所以如果你的主機也使用cPanel你應該能夠做我做的。

從文件管理器中的實時目錄中上移1個目錄,您可以在其中看到「public_html,www,tmp」。 (或點擊左側的主文件夾圖標),在那裏你應該找到一個php.ini文件。編輯文件加入extension=oauth.so到最後並保存。

檢查phpinfo()後,你應該找到一個名爲「OAuth」的部分,一切都應該正常工作。

+0

重要的是你將它添加到最後,這是我的問題。 – Goose