我在网站上找了几个小时的答案,但没有任何帮助。我已经安装了PHPApache2PECLOAuth,并编辑了php.ini,以获得 extension=oauth
. 我在输入 "php example.php "时都会出现这个错误,我在example.php中设置了token和所有需要的东西。
PHP致命错误。 在hometwitterTwitterAutoReply.php第22行没有找到类'OAuth'。
我的php文件是example.php和TwitterAutoReply.php。
https:/raw.github.comgist820281303a61ee9b324070e803e51806552e64fccfdd4cexample.php。 和 https:/gist.github.comraw8202816bf1b6d78dd05daef319ce84a88eedf139a44b5aTwitterAutoReply.php。
从错误来看,你没有在你的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并再次尝试.
确保扩展名确实被加载了. 要验证它是否被加载,只需向PHP询问一些关于OAuth扩展名的问题,在命令中,例如:"你可以用这个命令来验证OAuth扩展名是否被加载"。
php --re oauth
如果这个命令没有显示模块的信息,而是给出一个错误,你就知道它没有被加载。此外,你还可以简单地用以下命令列出所有加载的模块 php -m
.
尝试通过使用 -z oauth
在您的命令中。例如:: php -z oauth example.php
. 如果能成功,说明你没有正确编辑php.ini。
命令 php --re oauth
解决了我的问题。
看来是我的 php.ini
...命令给了我错误,我删除了这些行并重新安装了oauth,重新启动httpd,它成功地加载了该扩展。
我在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(...