PHP致命错误:类'OAuth'

时间:2011-12-03 19:33:41

标签: php twitter oauth pecl

我在网站上搜索了几个小时寻找答案,没有任何帮助。我已经为extension=oauth安装了PHP / Apache2 / PECL / OAuth并编辑了php.ini。我得到这个错误我键入的所有内容“php example.php”我设置了令牌和example.php中所需的一切

  

PHP致命错误:第22行/home/twitter/TwitterAutoReply.php中找不到“OAuth”类

我的php文件是example.php和TwitterAutoReply.php

https://raw.github.com/gist/820281/303a61ee9b324070e803e51806552e64fccfdd4c/example.phphttps://gist.github.com/raw/820281/6bf1b6d78dd05daef319ce84a88eedf139a44b5a/TwitterAutoReply.php

4 个答案:

答案 0 :(得分:5)

从错误中,您没有在php.ini文件中导入oauth包。 对于ubuntu,您需要安装oauth:

sudo pecl install oauth

然后在php.ini中包含oauth包。如果您不知道文件的位置,可以使用:

sudo find / -name "oauth.so"

使用扩展程序的路径将以下内容添加到php.ini:

extension=/path/to/oauth/package/oauth.so

重启apache并重试。

答案 1 :(得分:4)

确保实际加载了扩展程序。要验证它是什么,只需在PHP命令中询问有关OAuth扩展的内容:

php --re oauth

如果这不显示有关模块的信息,而是出错,您将知道它未加载。此外,您只需使用php -m列出所有已加载的模块。

尝试在命令中使用-z oauth手动加载扩展程序。示例:php -z oauth example.php。如果可以的话,你没有正确编辑你的php.ini。

答案 2 :(得分:1)

命令php --re oauth解决了我的问题。

似乎有php.ini的错误编码。该命令给了我错误,我删除了那些行并重新安装了oauth,重新启动了httpd并成功加载了该扩展。

答案 3 :(得分:0)

我正在使用oauth客户端,并且无法更改环境(添加php-oauth扩展名)。以下解决方案对我有用:

1)安装Zend OAuth

composer require zendframework/zendoauth

2)在PHP代码中使用以下代码:

$hmac = new \ZendOAuth\Signature\Hmac($consumerSecret, $accessTokenSecret, 'SHA1'); return $hmac->sign($data, $method, $url);

代替

$oauth = new OAuth(... $oauth->generateSignature(...