简介
HI,你好,欢迎使用袁小威AI开放平台垃圾分类API接口服务。
本文档主要针对API开发者,描述垃圾分类数据服务的相关技术内容。
接口请求成功,返回状态码为0。
具有免费调用额度的接口,超过每天的免费额度后会返回错误码:17,错误信息:Open api daily request limit reached(每天流量超限额),未上线计费的接口,可通过QQ群(872429018)联系群管、或发送邮件手动提额。
接口能力
接口名称 | 接口描述 | API地址 |
---|---|---|
城市列表 | 垃圾分类城市列表 | https://www.yuanxiaowei.com/Api/Rubbish/city_list |
城市分类信息 | 垃圾分类当前城市分类基本信息 | https://www.yuanxiaowei.com/Api/Rubbish/city_info |
分类详情 | 垃圾分类详情 | https://www.yuanxiaowei.com/Api/Rubbish/rubbish_info |
文字查询 | 根据垃圾名称或关键词,查询分类信息 | https://www.yuanxiaowei.com/Api/Rubbish/search |
热门查询 | 垃圾分类热门搜索词 | https://www.yuanxiaowei.com/Api/Rubbish/host_list |
更多更强大的接口能力正在开发中,并逐步开放,敬请期待!
调用方式
请求URL数据格式
向API服务地址使用POST发送请求,必须在URL中带上参数:
access_token: 必须参数,参考“Access Token获取”。
注意:access_token
的有效期为30天,需要每30天进行定期更换
POST中参数按照API接口说明调用即可。
获取access_token示例代码
<?php
function request_post($url = '', $param = '') {
if (empty($url) || empty($param)) {
return false;
}
$postUrl = $url;
$curlPost = $param;
$curl = curl_init();//初始化curl
curl_setopt($curl, CURLOPT_URL,$postUrl);//抓取指定网页
curl_setopt($curl, CURLOPT_HEADER, 0);//设置header
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
curl_setopt($curl, CURLOPT_POST, 1);//post提交方式
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec($curl);//运行curl
curl_close($curl);
return $data;
}
$url = 'https://www.yuanxiaowei.com/Api/Oauth/getToken';
$post_data['grant_type'] = 'client_credential';
$post_data['appid'] = '你的 appid';
$post_data['secret'] = '你的 app_secret';
$o = "";
foreach ( $post_data as $k => $v )
{
$o.= "$k=" . urlencode( $v ). "&" ;
}
$post_data = substr($o,0,-1);
$res = request_post($url, $post_data);
var_dump($res);
?>
说明:鉴权使用的Access_token必须通过appid和app_secret获取。
城市列表
接口描述
该请求用于获取垃圾分类城市列表。
请求说明
请求示例
HTTP 方法:POST
请求URL: https://www.yuanxiaowei.com/Api/Rubbish/city_list
URL参数:
参数 | 值 |
---|---|
access_token | 通过appid和app_secret获取的access_token,参考“Access Token获取” |
注:获取城市列表接口中Body中无需放置请求参数
请求代码示例
提示:使用示例代码前,请记得替换其中的示例Token
<?php
/**
* 发起http post请求(REST API), 并获取REST请求的结果
* @param string $url
* @param string $param
* @return - http response body if succeeds, else false.
*/
function request_post($url = '', $param = '')
{
if (empty($url) || empty($param)) {
return false;
}
$postUrl = $url;
$curlPost = $param;
// 初始化curl
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $postUrl);
curl_setopt($curl, CURLOPT_HEADER, 0);
// 要求结果为字符串且输出到屏幕上
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// post提交方式
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
// 运行curl
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
$token = '[调用鉴权接口获取的token]';
$url = 'https://www.yuanxiaowei.com/Api/Rubbish/city_list?access_token=' . $token;
$res = request_post($url);
var_dump($res);
返回说明
返回参数
字段 | 是否必须 | 说明 |
---|---|---|
status | 是 | 状态码 |
msg | 是 | 状态说明 |
result | 是 | 结果数组 |
+id | 是 | 城市唯一id |
+name | 是 | 城市名 |
返回示例
{
"status": 0,
"msg": "success",
"result": [
{
"id": "1",
"name": "北京"
},
{
"id": "2",
"name": "成都"
},
{
"id": "3",
"name": "上海"
},
{
"id": "4",
"name": "长春"
},
{
"id": "5",
"name": "重庆"
},
{
"id": "6",
"name": "长沙"
},
{
"id": "7",
"name": "大连"
},
{
"id": "8",
"name": "德阳"
},
{
"id": "9",
"name": "福州"
},
{
"id": "10",
"name": "广元"
}
]
}
城市分类信息
接口描述
该请求用于获取垃圾分类当前城市分类基本信息。
请求说明
请求示例
HTTP 方法:POST
请求URL: https://www.yuanxiaowei.com/Api/Rubbish/city_info
URL参数:
参数 | 值 |
---|---|
access_token | 通过appid和app_secret获取的access_token,参考“Access Token获取” |
Body中放置请求参数,参数详情如下:
请求参数
参数 | 是否必选 | 说明 |
---|---|---|
name | 是 | 城市名称,该值在【城市列表】接口中返回,如果传了city_id则不传该参数 |
city_id | 是 | 城市唯一id,该值在【城市列表】接口中返回,如果传了name则不传该参数 |
请求代码示例
提示:使用示例代码前,请记得替换其中的示例Token、name或city_id信息。
<?php
/**
* 发起http post请求(REST API), 并获取REST请求的结果
* @param string $url
* @param string $param
* @return - http response body if succeeds, else false.
*/
function request_post($url = '', $param = '')
{
if (empty($url) || empty($param)) {
return false;
}
$postUrl = $url;
$curlPost = $param;
// 初始化curl
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $postUrl);
curl_setopt($curl, CURLOPT_HEADER, 0);
// 要求结果为字符串且输出到屏幕上
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// post提交方式
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
// 运行curl
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
$token = '[调用鉴权接口获取的token]';
$url = 'https://www.yuanxiaowei.com/Api/Rubbish/city_info?access_token=' . $token;
$bodys = array(
'city_id' => $city_id//或者'name'=>$city_name
);
$res = request_post($url, $bodys);
var_dump($res);
返回说明
返回参数
字段 | 是否必须 | 说明 |
---|---|---|
status | 是 | 状态码 |
msg | 是 | 状态说明 |
result | 是 | 结果数组 |
+id | 是 | 城市唯一id |
+name | 是 | 城市名 |
+rubbish_list | 是 | 垃圾分类基本信息 |
++name | 是 | 垃圾分类属性名称 |
++name_sx | 是 | 垃圾分类属性首字母缩写 |
++desc | 是 | 垃圾分类属性描述 |
++id | 是 | 垃圾分类属性唯一id |
返回示例
{
"status": 0,
"msg": "获取成功",
"result": {
"id": "2",
"name": "成都",
"rubbish_list": [
{
"name": "其他垃圾",
"name_sx": "qtlj",
"desc": "是指除可回收物、有害垃圾、厨余(餐厨)垃圾以外的其它生活废弃物。包括砖瓦陶瓷、普通一次性电池(碱性电池)、受污染的一次性餐盒、卫生间废纸等。",
"id": 1
},
{
"name": "餐厨垃圾",
"name_sx": "cclj",
"desc": "是指餐饮垃圾、厨余垃圾及废弃食用油脂和集贸市场有机垃圾等易腐蚀性垃圾,包括废弃的食品、蔬菜、瓜果皮核以及家庭产生的花草、落叶等。",
"id": 2
},
{
"name": "可回收物",
"name_sx": "khsw",
"desc": "是指适宜回收和资源化利用的生活垃圾,包括纸类、塑料、金属、玻璃、木料和织物。",
"id": 3
},
{
"name": "有害垃圾",
"name_sx": "yhlj",
"desc": "是指对人体健康或者自然环境造成直接或潜在危害的生活垃圾,包括废电池、废弃药品、废杀虫剂、废水银产品等。",
"id": 4
}
]
}
}
分类详情
接口描述
该请求用于获取垃圾分类详情信息。
请求说明
请求示例
HTTP 方法:POST
请求URL: https://www.yuanxiaowei.com/Api/Rubbish/rubbish_info
URL参数:
参数 | 值 |
---|---|
access_token | 通过appid和app_secret获取的access_token,参考“Access Token获取” |
Body中放置请求参数,参数详情如下:
请求参数
参数 | 是否必选 | 说明 |
---|---|---|
id | 是 | 垃圾分类属性唯一id,该值在【城市分类信息】接口中返回 |
city_id | 是 | 城市唯一id,该值在【城市列表】接口中返回 |
name | 否 | 垃圾名称,查询出或热门查询的垃圾名称,当查看具体垃圾详情时才传 |
请求代码示例
提示:使用示例代码前,请记得替换其中的示例Token、id、city_id及name信息。
<?php
/**
* 发起http post请求(REST API), 并获取REST请求的结果
* @param string $url
* @param string $param
* @return - http response body if succeeds, else false.
*/
function request_post($url = '', $param = '')
{
if (empty($url) || empty($param)) {
return false;
}
$postUrl = $url;
$curlPost = $param;
// 初始化curl
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $postUrl);
curl_setopt($curl, CURLOPT_HEADER, 0);
// 要求结果为字符串且输出到屏幕上
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// post提交方式
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
// 运行curl
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
$token = '[调用鉴权接口获取的token]';
$url = 'https://www.yuanxiaowei.com/Api/Rubbish/rubbish_info?access_token=' . $token;
$bodys = array(
'id' => $id,
'city_id'=>$city_id,
'name'=>$name
);
$res = request_post($url, $bodys);
var_dump($res);
返回说明
返回参数
字段 | 是否必须 | 说明 |
---|---|---|
status | 是 | 状态码 |
msg | 是 | 状态说明 |
result | 是 | 结果数组 |
+id | 是 | 垃圾分类属性唯一id |
+name | 是 | 垃圾分类属性名称 |
+remark | 是 | 垃圾分类基本信息 |
+remarks | 是 | 垃圾分类属性投放建议(为数组格式) |
+tips | 否 | 垃圾分类属性友情提醒 |
返回示例
{
"status": 0,
"msg": "success",
"result": {
"id": "1",
"name": "其他垃圾",
"remark": "是指除可回收物、有害垃圾、厨余(餐厨)垃圾以外的其它生活废弃物。包括砖瓦陶瓷、普通一次性电池(碱性电池)、受污染的一次性餐盒、卫生间废纸等。",
"remarks": [
"用过的餐巾纸、尿片等由于沾有各类污迹,无回收利用价值,宜作为其他垃圾进行处理。",
"普通一次性电池(碱性电池)基本不含重金属,宜作为其他垃圾投放。",
"如日常生活中遇到成分复杂、不易分离归集的物品,建议作为干垃圾/其他垃圾处理。"
],
"tips": null
}
}
文字查询
接口描述
该请求用于根据垃圾名称或关键词,查询分类信息。
请求说明
请求示例
HTTP 方法:POST
请求URL: https://www.yuanxiaowei.com/Api/Rubbish/search
URL参数:
参数 | 值 |
---|---|
access_token | 通过appid和app_secret获取的access_token,参考“Access Token获取” |
Body中放置请求参数,参数详情如下:
请求参数
参数 | 是否必选 | 说明 |
---|---|---|
keywords | 是 | 需要查询的垃圾名称(含材质),比如:小龙虾、苹果、纸巾 |
city_id | 是 | 城市唯一id,该值在【城市列表】接口中返回 |
请求代码示例
提示:使用示例代码前,请记得替换其中的示例Token、keywords、city_id信息。
<?php
/**
* 发起http post请求(REST API), 并获取REST请求的结果
* @param string $url
* @param string $param
* @return - http response body if succeeds, else false.
*/
function request_post($url = '', $param = '')
{
if (empty($url) || empty($param)) {
return false;
}
$postUrl = $url;
$curlPost = $param;
// 初始化curl
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $postUrl);
curl_setopt($curl, CURLOPT_HEADER, 0);
// 要求结果为字符串且输出到屏幕上
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// post提交方式
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
// 运行curl
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
$token = '[调用鉴权接口获取的token]';
$url = 'https://www.yuanxiaowei.com/Api/Rubbish/search?access_token=' . $token;
$bodys = array(
'keywords' => $keywords,
'city_id'=>$city_id
);
$res = request_post($url, $bodys);
var_dump($res);
返回说明
返回参数
字段 | 是否必须 | 说明 |
---|---|---|
status | 是 | 状态码 |
msg | 是 | 状态说明 |
result | 是 | 结果数组 |
+name | 是 | 垃圾名称 |
+name_details | 是 | 垃圾分类属性名称 |
+rid | 是 | 垃圾分类属性唯一id |
返回示例
{
"status": 0,
"msg": "success",
"result": [
{
"name": "牛奶袋",
"name_details": "其他垃圾",
"rid": "1"
},
{
"name": "脏牛奶盒",
"name_details": "其他垃圾",
"rid": "1"
},
{
"name": "纯牛奶纸盒",
"name_details": "可回收物",
"rid": "3"
},
{
"name": "牛奶盒",
"name_details": "可回收物",
"rid": "3"
},
{
"name": "牛奶瓶",
"name_details": "可回收物",
"rid": "3"
},
{
"name": "喝完的牛奶盒",
"name_details": "可回收物",
"rid": "3"
},
{
"name": "纸质牛奶盒",
"name_details": "可回收物",
"rid": "3"
},
{
"name": "牛奶盒(剪开冲净)",
"name_details": "可回收物",
"rid": "3"
},
{
"name": "低温牛奶盒子",
"name_details": "可回收物",
"rid": "3"
},
{
"name": "牛奶塑料瓶",
"name_details": "可回收物",
"rid": "3"
}
]
}
热门查询
接口描述
该请求用于请求垃圾分类热门搜索词。
请求说明
请求示例
HTTP 方法:POST
请求URL: https://www.yuanxiaowei.com/Api/Rubbish/host_list
URL参数:
参数 | 值 |
---|---|
access_token | 通过appid和app_secret获取的access_token,参考“Access Token获取” |
Body中放置请求参数,参数详情如下:
请求参数
参数 | 是否必选 | 说明 |
---|---|---|
count | 否 | 需要返回的数量,默认8条 |
请求代码示例
提示:使用示例代码前,请记得替换其中的示例Token、count信息。
<?php
/**
* 发起http post请求(REST API), 并获取REST请求的结果
* @param string $url
* @param string $param
* @return - http response body if succeeds, else false.
*/
function request_post($url = '', $param = '')
{
if (empty($url) || empty($param)) {
return false;
}
$postUrl = $url;
$curlPost = $param;
// 初始化curl
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $postUrl);
curl_setopt($curl, CURLOPT_HEADER, 0);
// 要求结果为字符串且输出到屏幕上
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// post提交方式
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
// 运行curl
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
$token = '[调用鉴权接口获取的token]';
$url = 'https://www.yuanxiaowei.com/Api/Rubbish/host_list?access_token=' . $token;
$bodys = array(
'count' => $count
);
$res = request_post($url, $bodys);
var_dump($res);
返回说明
返回参数
字段 | 是否必须 | 说明 |
---|---|---|
status | 是 | 状态码 |
msg | 是 | 状态说明 |
result | 是 | 结果数组 |
+name | 是 | 垃圾名称 |
+rid | 是 | 垃圾分类属性唯一id |
返回示例
{
"status": 0,
"msg": "success",
"result": [
{
"name": "牛奶袋",
"rid": "1"
},
{
"name": "避孕套",
"rid": "1"
},
{
"name": "脏牛奶盒",
"rid": "1"
},
{
"name": "牛奶瓶",
"rid": "3"
},
{
"name": "KFC食物包装",
"rid": "1"
},
{
"name": "冰袋",
"rid": "1"
}
]
}
返回码
HTTP API无法正常处理接口请求时,会在响应结果中返回相应的返回码,告知调用者出错原因。
服务器返回的JSON文本包含以下参数:
status:返回码。
msg:返回描述信息,帮助理解和解决发生的错误。
例如Access Token失效返回:
{ "error_code": 40002, "error_msg": "Access token expired" } 需要重新获取新的Access Token再次请求即可。
接口返回码用途分布如下,请调用者关注。
错误码 | 错误信息 | 说明 |
---|---|---|
0 | success | 请求成功 |
17 | Open api daily request limit reached | 流量超限额 |
10000 | missing parameters: {参数名} | 重要参数缺失,如:access_token |
10001 | not enough param | 缺少必须的参数,请检查参数是否有遗漏 |
40001 | Access token invalid or no longer valid | 无效的Access token ,请核实 Access token是否有误 |
40002 | Access token expired | Access token过期,请重新获取 |
40003 | Unsupported openapi method | 调用的API不存在,请检查后重新尝试 |
50002 | No information was queried | 没有查询到所要的数据,请核实后重试 |