Etsy API目标区域通过活动列表而不是用户配置文件

时间:2016-03-22 22:50:24

标签: php json api etsy

使用Etsy的API,文档中没有列出我能够使用的listings下的任何内容,这样可以允许某人编写以下请求:

SELECT * FROM crimes
WHERE `Description` = ('AGGRAVATED: HANDGUN'), ('ARMED: HANDGUN')

API确实提到了Associations,但即使在查看测试之后会出现的关联,也可以从userProfile中提取区域:

$apistateloc = 'florida'; 
$apiurl = 'https://openapi.etsy.com/v2/listings/active?api_key=' . $apikey . '&limit=' . $apilimit . '&region=' . $apistateloc;

以及上述作品。我认为Region的API参考允许这样做:

$userprofile = json_decode(file_get_contents('https://openapi.etsy.com/v2/users/' . $product->user_id . '/profile?api_key=' . $apikey));
$products[$i]["region"] = $userprofile->results[0]->region;

但每次我运行它都会得到以下结果:

$theRegion = json_decode(file_get_contents('https://openapi.etsy.com/v2/private/regions?api_key=' . $apikey));
$products[$i]["region_state"] = $theRegion->results[0]->region_name;

Etsy API中是否有一种方法可以定位"region_state":"European Union" 等区域的所有有效列表(https://openapi.etsy.com/v2/listings/active)?我正在尝试制作一个基于州,国家或城市的JSON请求。

1 个答案:

答案 0 :(得分:2)

Region

  

表示项目所附带的国家/地区集合。

所以这个:

$theRegion = json_decode(file_get_contents('https://openapi.etsy.com/v2/private/regions?api_key=' . $apikey));
$products[$i]["region_state"] = $theRegion->results[0]->region_name;

您所做的就是返回可能区域的列表。返回机构实际上是这样的:

{
  "region_id": 11,
  "region_name": "European Union",
  "is_dead": false
},
 {
  "region_id": 12,
  "region_name": "Europe non-EU",
  "is_dead": false
},
 {
  "region_id": 13,
  "region_name": "South America",
  "is_dead": true
},
 {
  "region_id": 14,
  "region_name": "Africa",
  "is_dead": true
},
 {
  "region_id": 15,
  "region_name": "Central America",
  "is_dead": true
}

因此results[0]返回第一项,因此始终获得European Union

您要使用的是Region,而不是$apistateloc = 'florida'; $apiurl = 'https://openapi.etsy.com/v2/listings/active?api_key=' . $apikey . '&limit=' . $apilimit . '&location=' . $apistateloc; location parameter。因此,您的第一个请求字符串将完美地工作 - 只需用区域替换区域,如下所示:

{{1}}