cURL 授权错误 - 许可证管理器 WooCommerce

cURL Authorization Error - License Manager WooCommerce

我正在使用 License Manager for WooCommerce。 按照文档,我的代码如下所示:

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://www.my-url.com/subdir/wp-json/lmfwc/v2/licenses/validate/".$this->license."?consumer_key=".$this->consumerKey."&consumer_secret=".$this->consumerSecret,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => false,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

$result = json_decode($response, true);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $result;
} ?>

通过网络浏览器调用 URL,结果 returns 一个有效的 json 数组。 通过 php 文件调用代码会导致 $response 出现授权错误。

Forbidden You don't have permission to access this resource.

用户存在,拥有管理员权限,甚至创建新的密钥和密码也无济于事。

如何进一步调试和修复此问题?

解决方案是添加用户代理:

CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT']

//validate license key
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.my-url.com/wp-json/lmfwc/v2/licenses/validate/".$this->lcns."?consumer_key=".$this->lmfwcConsumerKey."&consumer_secret=".$this->lmfwcConsumerSecret,
    CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    ));

    $response = curl_exec($curl);
    $err = curl_error($curl);

    $result = json_decode($response, true);

    curl_close($curl);