gpt4 book ai didi

php - 在 Etsy 上创建新列表

转载 作者:搜寻专家 更新时间:2023-10-31 20:46:56 27 4
gpt4 key购买 nike

我正在尝试在 Etsy 上创建一个新列表。

  1. 我使用 oauth 进行身份验证并获得OAUTH_CONSUMER_KEYOAUTH_CONSUMER_SECRET

  2. 我用这段代码检查了一下,我得到了所有卖家数据的返回值,所以 OAuth 一切正常。

    $oauth = new OAuth(OAUTH_CONSUMER_KEY, OAUTH_CONSUMER_SECRET, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI);
    $oauth->setToken("key","secret");

    try {
    $data = $oauth->fetch("http://openapi.etsy.com/v2/users/__SELF__", null, OAUTH_HTTP_METHOD_GET);
    $json = $oauth->getLastResponse();
    print_r(json_decode($json, true));

    } catch (OAuthException $e) {
    error_log($e->getMessage());
    error_log(print_r($oauth->getLastResponse(), true));
    error_log(print_r($oauth->getLastResponseInfo(), true));
    exit;
    }
  3. 我正在尝试创建一个新列表。首先,我设法通过生产上的 api 浏览器创建了一个新列表。现在,我想通过 PHP 创建一个新列表。这就是我所做的,它返回了我的错误:

这是我的代码:

$oauth = new OAuth(OAUTH_CONSUMER_KEY, OAUTH_CONSUMER_SECRET,OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI);

$oauth->setToken("key","secret");

try {
$url = "http://openapi.etsy.com/v2/listings";

$params = array('description' => 'thisisdesc','materials' => 'yes','price'=>"5.99"
,'quantity'=>"2",'shipping_template_id'=>"52299",'shop_section_id'=>"1"
,'title'=>"thisistitle",'category_id'=>"i_did",'who_made'=>"5.99"
,'is_supply'=>"1",'when_made'=>"2010_2012");


$oauth->fetch($url, $params, OAUTH_HTTP_METHOD_POST);
print_r(json_decode($json, true));

} catch (OAuthException $e) {

print_r($e);

error_log($e->getMessage());
error_log(print_r($oauth->getLastResponse(), true));
error_log(print_r($oauth->getLastResponseInfo(), true));
exit;
}

我得到的回应是:

Invalid auth/bad request (got a 403, expected HTTP/1.1 20X or a redirect) 
This method not accessible to restricted API key.

最佳答案

如果您仍在开发您的应用程序,您可以创建列表而无需获得完整的 API 访问权限,只要商店在您的帐户上即可。确保在发出第一个 OAUTH 请求时将 listings_w 解析为权限范围。我在下面的代码中更改了 ETSY 提供的示例。

    // instantiate the OAuth object
// OAUTH_CONSUMER_KEY and OAUTH_CONSUMER_SECRET are constants holding your key and secret
// and are always used when instantiating the OAuth object
$oauth = new OAuth(OAUTH_CONSUMER_KEY, OAUTH_CONSUMER_SECRET);

// make an API request for your temporary credentials
$req_token = $oauth->getRequestToken("https://openapi.etsy.com/v2/oaut/request_token?scope=email_r%20listings_r%20listings_w", 'oob');

print $req_token['login_url']."\n";`

注意 scope=email_r%20listings_r%20listings_w;

希望对你有帮助

关于php - 在 Etsy 上创建新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12143541/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com