我在网站上搜索了几个小时寻找答案,没有任何帮助。我已经为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.php 和https://gist.github.com/raw/820281/6bf1b6d78dd05daef319ce84a88eedf139a44b5a/TwitterAutoReply.php
答案 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(...