【发布时间】:2020-03-12 09:40:29
【问题描述】:
我正在尝试使用 PHP 的 Oauth module 与 Etsy 的 API 进行交互。
关注Etsy's docs,我有
<?php
if (!extension_loaded('oauth')) {
throw new Exception('Oauth not loaded.');
}
$oauth = new OAuth("foobar-key", "foobar-secret");
$req_token = $oauth->getRequestToken(
"https://openapi.etsy.com/v2/oauth/request_token?scope=email_r%20listings_r",
"oob",
"GET"
);
使用 php7.2 运行时效果很好:
php7.2 etsy-oauth.php
...
OK
但是,当使用 php7.3 运行相同的程序时,我得到一个 401:
php7.3 etsy-oauth.php
...
PHP Fatal error: Uncaught OAuthException: Invalid auth/bad request (got a 401, expected HTTP/1.1 20X or a redirect)
oauth_problem=signature_invalid
OAuth 肯定是为 PHP 7.2 和 PHP 7.3 安装的,正如上面的 extension_loaded 所证实的那样,并且:
php7.2 -m | grep OAuth
OAuth
php7.3 -m | grep OAuth
OAuth
在 PHP 7.3 和 PHP 7.2 中应该如何进行相同的调用,我无法找到任何记录在案的差异。
在 PHP 7.3 中应该如何正确调用 Oauth?
【问题讨论】:
-
可能是您在 7.3 中缺少 PECL 扩展安装
-
@Prifulnath 它肯定已安装。我在
/etc/php/7.3/cli/conf.d/20-oauth.ini看到它,extension_loaded('oauth')在 php7.3 中是真的。 -
能否请您检查
php -m是否显示oAuth -
@Prifulnath 我更新了问题,确认为 php7.2 和 php7.3 都安装了 OAuth。