PHP致命错误。类'OAuth'

问题描述 投票:3回答:4

我在网站上找了几个小时的答案,但没有任何帮助。我已经安装了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 twitter oauth pecl
4个回答
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并再次尝试.


4
投票

确保扩展名确实被加载了. 要验证它是否被加载,只需向PHP询问一些关于OAuth扩展名的问题,在命令中,例如:"你可以用这个命令来验证OAuth扩展名是否被加载"。

php --re oauth

如果这个命令没有显示模块的信息,而是给出一个错误,你就知道它没有被加载。此外,你还可以简单地用以下命令列出所有加载的模块 php -m.

尝试通过使用 -z oauth 在您的命令中。例如:: php -z oauth example.php. 如果能成功,说明你没有正确编辑php.ini。


1
投票

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

看来是我的 php.ini...命令给了我错误,我删除了这些行并重新安装了oauth,重新启动httpd,它成功地加载了该扩展。


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(...

© www.soinside.com 2019 - 2024. All rights reserved.