首页 > 解决方案 > PHP Oauth 在 PHP 7.3 上获得 401,在 PHP 7.2 及更早版本上正常

问题描述

我正在尝试使用 PHP 的Oauth 模块与 Etsy 的 API 进行交互。

按照Etsy 的文档,我有

<?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?

标签: phpoauthphp-7.2php-7.3

解决方案


我在php7.3中遇到了同样的问题。尝试安装 OAuth 2.0.5。它对我有用


推荐阅读