pango-lier/etsy-php-v3

简单的 PHP Laravel Etsy-API-V3--Guzzel

dev-main 2022-09-23 04:13 UTC

This package is auto-updated.

Last update: 2024-09-23 08:36:22 UTC


README

PHP-Laravel-Redis-Guzzel

设置 EtsyOauth.php 示例,获取令牌。

配置 Etsy 客户端_id 和 etsy_scope

public function __construct($accountId = null, $access_token = null, $refresh_token = null)
    {
        $this->accountId = $accountId;
        $this->client = new EtsyClient(env('ETSY_KEYSTRING'), ETSY_SCOPE);
    }

请求 OAuth 令牌

步骤 1:请求授权码

获取重定向到 Etsy 商店的 URL

$getUrlRedirect= (new EtsyOauth())->getUrlRedirect(route('callback.verifier'));

步骤 2:授予访问权限

步骤 3:请求访问令牌

$token = (new EtsyOauth())->getAccessToken($request->state, $request->code, route('callback.verifier'));

令牌将被保存到 Redis 中。

EtsyApi.php

  • 将 methods.json 映射到 etsy 方法函数。

EtsyClient.php

  • Guzzle 客户端。

如何使用 etsy-php-v3

步骤 1:获取授权账户。

$etsyOauth = new EtsyOauth($accountId);
$api = $etsyOauth->getApi();

调用 API

步骤 2:检查文件 methods.json。

  "createDraftListing": {
    "http_method": "post",
    "content-type": "application/x-www-form-urlencoded",
    "uri": "/v3/application/shops/{shop_id}/listings",
    "params": { "shop_id": { "minimum": 1, "required": true, "type": "integer" } },
    "query": [],
    "data": {
      "quantity": { "type": "integer", "required": true },
      "title": { "type": "string", "required": true },
      "description": { "type": "string", "required": true },
      "price": { "type": "float", "required": true },
      "who_made": { "type": "string", "required": true },
      "when_made": { "type": "string", "required": true },
      "taxonomy_id": { "type": "integer", "required": true },
      "shipping_profile_id": { "type": "integer", "required": true },
      "materials": { "type": "array", "required": false },
      "shop_section_id": { "type": "integer", "required": false },
      "processing_min": { "type": "integer", "required": false },
      "processing_max": { "type": "integer", "required": false },
      "tags": { "type": "array", "required": false },
      "recipient": { "type": "string", "required": false },
      "occasion": { "type": "string", "required": false },
      "styles": { "type": "array", "required": false },
      "item_weight": { "type": "float", "required": false },
      "item_length": { "type": "float", "required": false },
      "item_width": { "type": "float", "required": false },
      "item_height": { "type": "float", "required": false },
      "item_weight_unit": { "type": "string", "required": false },
      "item_dimensions_unit": { "type": "string", "required": false },
      "is_personalizable": { "type": "boolean", "required": false },
      "image_ids": { "type": "array", "required": false },
      "is_supply": { "type": "boolean", "required": false },
      "is_customizable": { "type": "boolean", "required": false },
      "is_taxable": { "type": "boolean", "required": false }
    }
  },

运行 API 示例

步骤 2:示例数据。

$api->createDraftListing([
    'params':
        [
            'shop_id':xxxxx   // required =true
        ],
    'data':
        [
      "quantity": 1,
      "title": "example title",   // required =true
      "description": "example",   // required =true
      "price": 11.11,   // required =true
      "who_made": { "type": "string", "required": true },// required =true
      "when_made": { "type": "string", "required": true },// required =true
      "taxonomy_id": { "type": "integer", "required": true },// required =true
      "shipping_profile_id": { "type": "integer", "required": true },// required =true
      "is_customizable": false,
      "is_taxable": false
        ]
])