首页 » 淘宝客API

淘宝客是淘宝推广的一种方式。可以通过淘宝开放平台提供的API来辅助推广。

做淘宝客推广,首先就要获取到推广链接。有几种思路获取到一个淘宝客链接:

  1. 通过商品分类。按需要的某个类别,获取到一堆淘宝客商品。
  2. 通过商品搜索。按一定的关键词搜索,获取一堆淘宝客商品。
  3. 通过某个指定的淘宝链接,并对链接进行转换,通过普通链接生成淘宝客链接。

UPDATE: 淘宝开发平台在2012年年底,取消了淘宝客服务端API的支持,也就是不能用PHP等服务器脚本获取淘宝客链接了(过时的代码也在下面),取而代之的是一种名为“组件API”的新方式。所谓组件API,就是客户端API,即JavaScript API。

组件API代码框架

step0: 引入淘宝的JS文件:

<script src="http://l.tbcdn.cn/apps/top/x/sdk.js?appkey=MY-APP-PUB-KEY"></script>

step1: 生成签名,并写入Cookie:

<?php
$app_key = "MY-APP-PUB-KEY";
$secret = "MY-APP-PRI-KEY";
$timestamp = time()."000";
$message = $secret."app_key".$app_key."timestamp".$timestamp.$secret;
$mysign = strtoupper(hash_hmac("md5", $message, $secret));
setcookie("timestamp", $timestamp);
setcookie("sign", $mysign);
?>

step2: 调用组件API:

<script>
    TOP.api('rest', 'get', {
        method : 'taobao.taobaoke.widget.items.convert',
        num_iids: '13111036231,16430856703,19087367082',
        fields: 'num_iid, click_url, commission_rate'
    }, function(resp) {
        if(resp.error_response) {
            alert("convert failed: " + resp.error_response.msg);   
            return false;
        }
    
        var ritem = resp.taobaoke_items.taobaoke_item;
        for(var i = 0; i < ritem.length; ++i) {
            console.log(ritem[i].click_url);
        }
    });
</script>

参考下文中的组件API详解一节。

组件API详解

淘宝官方的组件API介绍错误代码一览

Step0: 如上述代码框架所示,首先要引入淘宝JSSDK,即以下代码:

<script src="http://l.tbcdn.cn/apps/top/x/sdk.js?appkey=MY-APP-PUB-KEY"></script>

淘宝要求不能泄漏appkey的信息,然而这第一行代码就将appkey暴露在外,是否也算是自相矛盾。

Step1: 接下来是生成签名和时间戳。签名算法用HMAC-MD5算法。待加密的字符串格式为:$secret...$secret,即把原始字符串前后添加secret(即应用的私钥/MY-APP-PRI-KEY)。例如加密"hello":

$secret = "MY-APP-PRI-KEY";
$msg    = "hello";
hash_hmac($secret.$msg.$secret);

对$msg的格式也有要求。$msg应该是key/value的格式,且按字符序排序,例如:

"app_key".$app_key."timestamp".$timestamp

因此最终用于加密的字串是:

$message = $secret."app_key".$app_key."timestamp".$timestamp.$secret;
$mysign = strtoupper(hash_hmac("md5", $message, $secret));

组件API - 获取淘宝客链接

API接口

taobao.taobaoke.widget.items.convert

过时的淘宝客链接代码

注意,以下代码都已过时,淘宝已不再支持。

基础代码结构

几乎所有淘宝客代码的基础结构都如下:

require_once("taobao/TopSdk.php");

$c = new TopClient;
$c->appkey = "MY-APP-PUB-KEY";
$c->secretKey = "MY-APP-PRI-KEY";
$c->format = "json";

$req = new ItemcatsGetRequest;  /* 根据不同请求,生成不同的对象 */
$req->setFields("cid,parent_cid,name,is_parent");   /* 设置需要返回的数据 */
$req->setParentCid($cid);

$resp = $c->execute($req);      /* 执行请求,并获取结果 */
$item_cats = $resp->item_cats->item_cat;    /* 从返回中抽取所需数据 */
foreach($item_cats as $ic) {                /* 遍历数据,并作处理 */
}

其中TopClient是核心类,而不同的请求/API都对应一个请求类,如ItemcatsGetRequest(商品类别请求)、TaobaokeItemsGetRequest(淘宝客推广商品信息)等。

获取商品类别

以下代码,获取所有的淘宝分类:

require_once("taobao/TopSdk.php");

$c = new TopClient;
$c->appkey = "MY-APP-PUB-KEY";
$c->secretKey = "MY-APP-PRI-KEY";
$c->format = "json";

$req = new ItemcatsGetRequest;
$req->setFields("cid,parent_cid,name,is_parent");

$all = array(0);    /* root cid: 0 */
$idx = 0;

while($idx < count($all)) {
    $cid = $all[$idx];
    $req->setParentCid($cid);
    $resp = $c->execute($req);
    $item_cats = $resp->item_cats->item_cat;
    foreach($item_cats as $ic) {
        echo "$cid, ".intval($ic->is_parent).", $ic->cid, $ic->name\n";
        flush();
        if($ic->is_parent) {
            $all []= $ic->cid;
        }
    }
    ++$idx;
    sleep(1);
}

淘宝商品类目多的惊人。通过以上代码获取的分类多大13000多种。 从获取分类的结果看,有一点很有趣,淘宝把各省市也算在分类中(其大类是景点门票)。 你可以查看我获取的完整的淘宝商品分类

普通链接转淘宝客链接

API接口

taobao.taobaoke.items.convert

PHP类是TaobaokeItemsConvertRequest

如果链接没有淘宝客,将返回:

{"taobaoke_items_convert_response":{}}

如果链接有淘宝客,将返回如:

{"taobaoke_items_convert_response":{"taobaoke_items":{"taobaoke_item":[{"click_url":"http:\/\/s.click.taobao.com\/t_8?e=PARA&p=mm_123456_0_0&n=19&spm=2014.12129701.1.0","num_iid":14388038537}]},"total_results":1}}

通过关键字搜索获取淘宝客链接

API接口:

taobao.taobaoke.items.get

PHP类是TaobaokeItemsGetRequest。如果搜索结果巨大,只返回部分结果,规则是:返回前100页,每页最多40条。

搜索“2012夏装新款男装韩版修身男式直筒裤”这个关键词:

{"taobaoke_items_get_response":{"taobaoke_items":{"taobaoke_item":[{"click_url":"http:\/\/s.click.taobao.com\/t_8?e=PARA&p=mm_123456_0_0&n=19&spm=2014.12129701.1.0","num_iid":15578583538},...]}, "total_results":244}}

分享

0