简介

HI,你好,欢迎使用袁小威AI开放平台垃圾分类API接口服务。

本文档主要针对API开发者,描述垃圾分类数据服务的相关技术内容。

接口请求成功,返回状态码为0。

具有免费调用额度的接口,超过每天的免费额度后会返回错误码:17,错误信息:Open api daily request limit reached(每天流量超限额),未上线计费的接口,可通过QQ群(872429018)联系群管、或发送邮件手动提额。

接口能力

接口名称 接口描述 API地址
城市列表 垃圾分类城市列表 https://www.yxiaowei.com/Api/Rubbish/city_list
城市分类信息 垃圾分类当前城市分类基本信息 https://www.yxiaowei.com/Api/Rubbish/city_info
分类详情 垃圾分类详情 https://www.yxiaowei.com/Api/Rubbish/rubbish_info
文字查询 根据垃圾名称或关键词,查询分类信息 https://www.yxiaowei.com/Api/Rubbish/search
热门查询 垃圾分类热门搜索词 https://www.yxiaowei.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.yxiaowei.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.yxiaowei.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.yxiaowei.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.yxiaowei.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.yxiaowei.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.yxiaowei.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.yxiaowei.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.yxiaowei.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.yxiaowei.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.yxiaowei.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.yxiaowei.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 没有查询到所要的数据,请核实后重试

results matching ""

    No results matching ""