breakpoint / etsy-php
Etsy api 的 PHP 封装。
Requires
- ext-json: *
- guzzlehttp/guzzle: ^7.4
- guzzlehttp/oauth-subscriber: ^0.6.0
Requires (Dev)
- phpunit/phpunit: ^9.5
Suggests
- y0lk/oauth1-etsy: To easily create access tokens for authenticated requests.
README
此库旨在提供一个简单的方式来访问 Etsy API 的所有方法。结构基于 Etsy API 文档的组织。方法根据其“类型”组织,例如列表、用户等。
目录
快速开始
通过运行 Composer 安装
composer require breakpoint/etsy-php
使用方法访问所有特色列表
$esty = new \breakpoint\etsy\EtsyClient('your-keystring', 'your-secret'); $results = $etsy->listing->findAllFeaturedListings(); foreach ($results as $item) { echo $item->listing_id; }
请求
所有请求都从 EtsyClient
对象开始,并作为属性引用。这些通常对应于 Etsy API 文档,但有一些变化。包含三种额外的类型,但未记录:application
、baseline
和 server
。这些仅通过 getMethodTable 方法的结果引用。
$etsy->listing-> // method found in API documentation
参数
参数使用数组指定,直接传递到您要执行的方法。
$etsy->listing->getListing(['listing_id' => '123abc']);
字段
如果您想指定返回的 字段,则首先将它们指定为一个数组。
$etsy->listing->fields(['listing_id', 'title', 'description', 'url'])->getListing(['listing_id' => '123abc']);
关联
Etsy 允许您在请求中请求返回额外的 关联。您必须首先将这些指定为一个数组。
$etsy->shop->associations(['Listings' => [ 'scope' => 'draft', 'limit' => 10, 'offset' => 0, 'select' => array('listing_id', 'title'), // you can also specify sub-associations //'associations' => // scope, limit, select, etc ]]) ->getShop(['shop_id' => '123abc']);
数据
所有 PATCH
、POST
和 PUT
请求也接受一个数据数组。
$etsy->userprofile->updateUserProfile( // first array is parameters ['user_id', 'user_123'], // second array is data you are changing ['first_name' => 'john', 'last_name' => 'developer']);
结果
POST
方法始终返回一个 EtsyObject
作为响应。GET
方法将返回 EtsyResults
或 EtsyObject
,具体取决于预期返回的项目数量。如果您正在获取列表,则将返回 EtsyObject
,如果您正在获取活动列表,则将返回 EtsyResults
。
所有其他请求(PUT
、PATCH
、DELETE
)将根据其响应返回 true
或 false
。
注意:已自动生成返回值,然后手动审查。如果值不符合预期,请创建问题或拉取请求。
EtsyResults
EtsyResults
对象是一个简单的可迭代和数组可访问集合。集合中的所有项目都是 EtsyObject
的实例。有几个基本方法可用
$results = $etsy->listing->findAllFeaturedListings(); $results[0]; // access the item at that position $results->count(); // returns number of items $results->first(); // access the first item $results->add(object); // useful if you are performing requests with multiple pages
EtsyObject
此简单对象允许您通过魔法方法将单个结果作为属性访问。
$listing = $etsy->listing->getListing(['listing_id' => 'listing_123']); echo $listing->title; echo $listing->getType(); // 'Listing'
OAuth 请求
所有需要 权限范围 的方法都需要通过访问和密钥令牌进行 OAuth 访问。一种简单的方法是使用 y0lk/oauth1-etsy
。您将在创建 EtsyClient
对象时指定这些值。
$esty = new \breakpoint\etsy\EtsyClient('your-keystring', 'your-secret', 'access_token', 'token_secret');
临时用户
默认情况下,只有应用程序的所有者可以通过 OAuth 认证和使用它。为了允许其他用户使用您的应用程序,您必须通过 Etsy 开发者网站请求“完全访问权限”或将他们添加为 临时用户。这是通过两个包含的方法调用来实现的
$etsy->application->addProvisional(['user_id' => 'user_123']); $etsy->application->removeProvisional(['user_id' => 'user_123']); // returns all users with access $etsy->application->getProvisional();
高级
如果您希望接收完整的响应,请在您的请求中使用raw()
函数。
$raw = $etsy->listing->raw()->getTrendingListings();
开发
包含了generate.php
文件,该文件根据API返回的所有已知类型创建资源。这旨在API进行重大更改时作为起点。
php generate.php