Etsy Api v3 __SELF__

Etsy Api v3 __SELF__

在 Etsy Api V2 中,我们可以使用 __SELF__ 作为 shopID,但在 Api v3 中会给出错误('shop_id' 的预期整数值(得到字符串))。

v2 中的端点(成功):

https://openapi.etsy.com/v2/shops/__SELF__/receipts

v3 中的端点(错误):

https://openapi.etsy.com/v3/application/shops/__SELF__/receipts

那么,我们如何在 v3 中使用 __SELF__ 方法呢? 如果不是,我们如何获得授权商店的ID?

{
    "access_token": "12345678.O1zLuwveeKjpIqCQFfmR-PaMMpBmagH6DljRAkK9qt05OtRKiANJOyZlMx3WQ_o2FdComQGuoiAWy3dxyGI4Ke_76PR",
    "token_type": "Bearer",
    "expires_in": 3600,
    "refresh_token": "12345678.JNGIJtvLmwfDMhlYoOJl8aLR1BWottyHC6yhNcET-eC7RogSR5e1GTIXGrgrelWZalvh3YvvyLfKYYqvymd-u37Sjtx"
}

OAuth 授权令牌 (access_token) 包括用户 ID(上例中的 12345678),这是授予 Etsy.com 用户的内部 user_id应用程序访问。

V3 Open API 需要此参数中格式化的组合用户 ID 前缀和 OAuth 令牌来验证请求。

这个数字 OAuth user_id 只能从授权代码授予流程中获得。

所以我们可以从 access_token 获取用户 ID,然后使用该用户 ID 获取商店。

PHP 获取用户id和设置curl的代码url:

$user_id=explode(".", $access_token)[0];
$curlUrl = 'https://openapi.etsy.com/v3/application/users/'.$user_id.'/shops';