致命错误:未找到“OAuth”类

时间:2012-12-11 14:57:52

标签: php

我正在尝试连接到LinkedIn API,但每次尝试访问它时都会出现以下错误:

  

致命错误:在/home/vhosts/*/test.php中找不到“OAuth”类   第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 Developers入门指南中的密钥。

提前感谢您的帮助。

5 个答案:

答案 0 :(得分:9)

OAuth是PECL扩展,必须编译成PHP或编译为扩展名。

大多数服务器默认不会拥有它,因为它实际上不是每个人都可能使用的东西。您可以要求您的主机安装它,或者如果您像我一样使用CGI,则可以在服务器上编译它。如果你运行phpinfo();如果你有它,它会显示OAuth这个词,否则你就不会。


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

答案 1 :(得分:2)

我使用hostgator进行托管并遇到了这个问题,所以如果您的主机也使用cpanel,您应该能够做我做的事情。

从文件管理器中的实时目录中获取1个目录,您可以在其中查看" public_html,www,tmp"。 (或者单击左侧的主文件夹图标),然后在那里找到一个php.ini文件。编辑文件,将extension=oauth.so添加到最后并保存。

之后检查phpinfo()你应该找到一个名为" OAuth"一切都应该正常。

答案 2 :(得分:0)

尝试查看here。有一个例子说明如何通过OAuth php类使用linkedin api而不是扩展名。

答案 3 :(得分:0)

对于php 5.6 ...首先免责声明:您需要尽快迁移到最新的稳定php 7,并且 not 运行php 5.6!但是,如果这还不可能,这可能会帮助Ubuntu 16.04用户。假设您拥有ondrej / php ppa。

sudo apt-get update
sudo apt-get install libpcre3-dev
sudo apt-get install php-pear            # * see note below 
sudo apt-get install php5.6-dev          # for phpize
sudo pecl install oauth-1.2.3

# now add "extension=oauth.so" (sans quotes) to the 
# "Dynamic Extensions" area in /etc/php/5.6/apache2/php.ini

*每个帖子 https://askubuntu.com/a/756186/343695“ php-pear pull [s]仅是CLI PHP 7.0(php7.0-cli),这是无害的”。该评论于2016年提出,可能不再正确。我还没发现任何问题...。

答案 4 :(得分:0)

sudo apt-get update
sudo apt-get install php-oauth
sudo service apache2 restart