随着“无界零售”时代的到来,越来越多的企业开始寻求数字化转型,其中最重要的一个环节就是数据的互通和整合。而阿里巴巴旗下的B2B网站1688也推出了API接口,为企业间的数据交流提供了便利。电商API中有两个热门的接口,经常会被大家调用,那就是获取商品详情数据API和关键字搜索商品列表API。
API(Application Programming Interface)即应用程序接口,它是不同系统之间进行交互的桥梁。比如说,一个企业想要在自己的网站上展示来自1688的商品信息,就可以通过API接口,直接获取1688的商品数据,从而实现信息的更新和同步。
1、获取商品详情数据API:item_get
商品API是1688 API中最常用的一个接口,它能够帮助企业获取1688上的商品信息,包括商品的价格、数量、规格、图片等等。拿到这些信息后,企业就可以在自己的网站上展示这些商品,并以此令自己的网站更加丰富和完整。此外,还可以基于商品API来完成一些其他的功能,比如说根据一定的条件筛选商品、对获取到的商品信息作出相应的处理等等。
item_get请求参数为num_iid:1688商品ID,sales_data:&sales_data=1 获取近30天成交数据
agent:&agent=1 获取1688分销代发价格数据。可以获取到商品详情页上所有数据,包括宝贝ID、商品标题、商品简介、价格、原价、卖家昵称、宝贝链接、宝贝图片、品牌、品牌id、顶级分类ID、商品图片、邮费、快递费用、商品视频、商品SKU信息、商品规格信息列表、销售额、属性图片、详情图片列表。
2、关键字搜索接口item_search
1688关键字搜索API是一个基于API接口的程序,通过将买家在前端页面输入的关键字转化为后端服务器能够识别的格式,从而实现对指定关键字进行搜索,并返回相关结果。使用该API,不仅可以省去繁琐的手动搜索过程,还能提升搜索速度和精准度,有效提高工作效率。
item_search请求参数为关键字,q:搜索关键字
cat:分类ID
start_price:开始价格
end_price:结束价格
sort:排序[bid,_bid,_sale,_credit]
(bid:总价,sale:销量,credit信用,加_前缀为从大到小排序)
page:页数 page_size:每页宝贝数量,默认40
filter:额外的过滤参数,如:filter=filtId:1,2,3,4;activityType:1,2,3,4;city:天津;quantityBegin:1000
filtId 过滤:48小时发货,7+天包换,赠运费险,免费赊账;
activityType 优惠类型:包邮,产地货源,伙拼,手机专享价
city 地区:地区名
quantityBegin 起订量:数字
返回参数:
名称 | 类型 | 必须 | 示例值 | 描述 |
---|---|---|---|---|
items |
items[] | 0 | 按关键字搜索商品 | |
page |
Int | 0 | 1 | 页码 |
real_total_results |
Int | 0 | 1900 | 宝贝数量 |
total_results |
Int | 0 | 1900 | 宝贝数量 |
page_size |
Int | 0 | 20 | 接口返回数量 |
pagecount |
Int | 0 | 120 | 总页数 |
data_from |
String | 0 | ||
item |
item[] | 0 | 宝贝详情数据 |
请求示例:
curl方式
-- 请求示例 url 默认请求参数已经URL编码处理
curl -i "https://api-服务器.cn/1688/item_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&q=女装&start_price=0&end_price=0&page=1&cat=0&discount_only=&sort=&page_size=40&seller_info=no&nick=&seller_info=&nick=&ppath=&imgid=&filter="
PHP方式
&secret=<您自己的apiSecret>&q=女装&start_price=0&end_price=0&page=1&cat=0&discount_only=&sort=&page_size=40&seller_info=no&nick=&seller_info=&nick=&ppath=&imgid=&filter=";
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_ENCODING, "gzip");
var_dump(curl_exec($curl));
?>
PHPsdk
api_url = "http://api-服务器.cn/";
$obapi->api_urls = array("http://api-服务器.cn/","http://api-1.onebound.cn/");//备用API服务器
$obapi->api_urls_on = true;//当网络错误时,是否启用备用API服务器
$obapi->api_key = "<您自己的apiKey>";
$obapi->api_secret = "<您自己的apiSecret>";
$obapi->api_version ="";
$obapi->secache_path ="runtime/";
$obapi->secache_time ="86400";
$obapi->cache = true;
$api_data = $obapi->exec(
array(
"api_type" =>"1688",
"api_name" =>"item_search",
"api_params"=>array (
'q' => '女装',
'start_price' => '0',
'end_price' => '0',
'page' => '1',
'cat' => '0',
'discount_only' => '',
'sort' => '',
'page_size' => '40',
'seller_info' => '',
'nick' => '',
'ppath' => '',
'imgid' => '',
'filter' => '',
)
)
);
var_dump($api_data);
?>
Java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.PrintWriter;
import java.net.URLConnection;
public class Example {
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
public static JSONObject postRequestFromUrl(String url, String body) throws IOException, JSONException {
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
PrintWriter out = new PrintWriter(conn.getOutputStream());
out.print(body);
out.flush();
InputStream instream = conn.getInputStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
instream.close();
}
}
public static JSONObject getRequestFromUrl(String url) throws IOException, JSONException {
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
InputStream instream = conn.getInputStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
instream.close();
}
}
public static void main(String[] args) throws IOException, JSONException {
// 请求示例 url 默认请求参数已经URL编码处理
String url = "https://api-服务器.cn/1688/item_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&q=女装&start_price=0&end_price=0&page=1&cat=0&discount_only=&sort=&page_size=40&seller_info=no&nick=&seller_info=&nick=&ppath=&imgid=&filter=";
JSONObject json = getRequestFromUrl(url);
System.out.println(json.toString());
}
}