淘宝开放API菜鸟教程——根据卖家昵称获取卖家店铺ID
2013-09-29 11:40
477 查看
做淘客,选产品是一件非常烦的事,所以自己按淘宝api的文档,并参考了几个api例子,做成了这个php类,有了这个类就可以按关键词直接获取产品列表了,真是方便呀。
原创文章 http://www.yangwo.net/214/
使用方法:
1、配置 $appKey和$appSecret
2、直接实例化一个类,如
$taokeArr就是一个包含查询到的淘客数据的二维数组,根我们在数据库里查询多条记录返回的结果一样
3、可以用foreach()循环打印$taokeArr
<php
header("Content-Type:text/html;charset=UTF-8");
/*本程序功能:根卖家昵称获取卖家店铺sid,还有店铺标题*/
//config
$appKey = '12345678; //你的密匙
$appSecret = '123456789';
$usernick = 'grayvoice'; //你的用户名
$salenick= '缺水鱼儿'; //卖家昵称
//签名函数
function createSign ($paramArr) {
global $appSecret;
$sign = $appSecret;
ksort($paramArr);
foreach ($paramArr as $key => $val) {
if ($key !='' && $val !='') {
$sign .= $key.$val;
}
}
$sign = strtoupper(md5($sign));
return $sign;
}
//组参函数
function createStrParam ($paramArr) {
$strParam = '';
foreach ($paramArr as $key => $val) {
if ($key != '' && $val !='') {
$strParam .= $key.'='.urlencode($val).'&';
}
}
return $strParam;
}
//解析xml函数
function getXmlData ($strXml) {
$pos = strpos($strXml, 'xml');
if ($pos) {
$xmlCode=simplexml_load_string($strXml,'SimpleXMLElement', LIBXML_NOCDATA);
$arrayCode=get_object_vars_final($xmlCode);
return $arrayCode ;
} else {
return '';
}
}
function get_object_vars_final($obj){
if(is_object($obj)){
$obj=get_object_vars($obj);
}
if(is_array($obj)){
foreach ($obj as $key=>$value){
$obj[$key]=get_object_vars_final($value);
}
}
return $obj;
}
//参数数组
$paramArr = array(
'app_key' => $appKey,
'method' => 'taobao.shop.get',
'format' => 'xml',
'v' => '1.0',
'timestamp' => date('Y-m-d H:i:s'),
'fields' => 'sid,nick,title', /*想要返回的数据的相应参数,sid对应卖家店铺id,nick对应卖家昵称,这里其实不用返回,因为已经知道了嘛。title对应卖家店铺标题,也就是店铺名称*/
'nick' => $salenick //卖家昵称
);
//生成签名
$sign = createSign($paramArr);
//组织参数
$strParam = createStrParam($paramArr);
$strParam .= 'sign='.$sign;
//访问服务
$url = 'http://gw.api.taobao.com/router/rest'.$strParam;
$result = file_get_contents($url);
$result = getXmlData($result);
$sid = $result['shop']['sid']; //返回卖家店铺ID
$nick = $result['shop']['nick']; //返回卖家昵称
$title = $result['shop']['title']; //返回卖家店铺标题
>
<php echo '卖家店铺ID:'.$sid.'<br>';> <!-- 在页面打印店铺ID -->
<php echo '卖家昵称:'.$nick.'<br>';> <!-- 在页面打印卖家昵称-->
<php echo '店铺标题:'.$title.'<br>';> <!-- 在页面打印卖家店铺标题 -->
<?php class taobaoke{ protected $url = 'http://gw.api.taobao.com/router/rest?'; //正式环境提交URL protected $appKey = '88888888'; //填写自己申请的AppKey protected $appSecret = 'xxxxxxxxxxxxxxxxxxxxxx'; //填写自己申请的$appSecret protected $userNick; //淘宝昵称,这是你帐号的淘宝昵称,所得佣金就是用这个接收的 //参数数组 protected $paramArr = array( /* API系统级输入参数 Start */ 'method' => 'taobao.taobaoke.items.get', //API名称 //'timestamp' => date('Y-m-d H:i:s'), 'format' => 'xml', //返回格式,本demo仅支持xml //'app_key' => $appKey, //Appkey 'v' => '2.0', //API版本号 'sign_method'=> 'md5', //签名方式 /* API系统级参数 End */ /* API应用级输入参数 Start*/ 'fields' => 'num_iid,title,pic_url,price,click_url,volume,commission',//返回字段 //'nick' => $userNick, 'keyword'=>'连衣裙', 'cid'=>0, 'start_price'=>'30', 'end_price'=>'99999', 'start_credit'=>'4heart',//卖家信用 'sort'=>'commissionVolume_desc',//默认排序:总支出佣金从高到低 'start_commissionRate'=>'1000',//佣金比率下限,如:1234表示12.34% 'end_commissionRate'=>'8000',//佣金比率上限,如:1234表示12.34% 'start_commissionNum'=>'10',//30天累计推广量上限 'end_commissionNum'=>'900000',//30天累计推广量下限 'real_describe'=>'true',//是否如实描述(即:先行赔付)商品 'page_no'=>1,//结果页数 'page_size'=>10,//每页产品数 /* API应用级输入参数 End*/ ); /** *构造函数 *@$mainParam:string,为四个用英文逗号隔开的参数,这四个参数依次为关键词、佣金比率下限和价格下限、30天累计推广量上限,关键词为必填项,后面三个为可选项 *@$userNick:string */ public function __construct($mainParam='关键词,1000,30,10',$userNick='淘宝昵称'){ $this->userNick=$userNick; $mainParamArr=explode(',',$mainParam); $this->paramArr['keyword']=$mainParamArr[0]; if(isset($mainParamArr[1])){ $this->paramArr['start_commissionRate']=$mainParamArr[1]; } if(isset($mainParamArr[2])){ $this->paramArr['start_price']=$mainParamArr[2]; } if(isset($mainParamArr[3])){ $this->paramArr['start_commissionNum']=$mainParamArr[3]; } $this->paramArr['timestamp']=date('Y-m-d H:i:s'); $this->paramArr['nick']=$this->userNick; $this->paramArr['app_key']=$this->appKey; } public function getTaokeResult(){ //生成签名 $sign = $this->createSign($this->paramArr,$this->appSecret); //组织参数 $strParam = $this->createStrParam($this->paramArr); $strParam .= 'sign='.$sign; //构造Url $url = $this->url.$strParam; //连接超时自动重试 $cnt=0; while($cnt < 3 && ($result=@$this->vita_get_url_content($url))===FALSE){ $cnt++; } //解析Xml数据 $result = $this->getXmlData($result); return $result['taobaoke_items']['taobaoke_item']; } //获取数据兼容file_get_contents与curl protected function vita_get_url_content($url) { if(!function_exists('curl_init')) { $file_contents = file_get_contents($url); } else { $ch = curl_init(); $timeout = 5; curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); //设置允许curl请求连接的最长秒数,如果设置为0,则无限 curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); //设置允许curl所有动作执行的最长秒数,如果设置为0,则无限 curl_setopt ($ch, CURLOPT_TIMEOUT,$timeout*3); $file_contents = curl_exec($ch); curl_close($ch); } return $file_contents; } //签名函数 protected function createSign ($paramArr,$appSecret) { //global $appSecret; $sign = $appSecret; ksort($paramArr); foreach ($paramArr as $key => $val) { if ($key !='' && $val !='') { $sign .= $key.$val; } } $sign = strtoupper(md5($sign.$appSecret)); return $sign; } //组参函数 protected function createStrParam ($paramArr) { $strParam = ''; foreach ($paramArr as $key => $val) { if ($key != '' && $val !='') { $strParam .= $key.'='.urlencode($val).'&'; } } return $strParam; } //解析xml函数 protected function getXmlData ($strXml) { $pos = strpos($strXml, 'xml'); if ($pos) { $xmlCode=simplexml_load_string($strXml,'SimpleXMLElement', LIBXML_NOCDATA); $arrayCode=$this->get_object_vars_final($xmlCode); return $arrayCode ; } else { return ''; } } protected function get_object_vars_final($obj){ if(is_object($obj)){ $obj=get_object_vars($obj); } if(is_array($obj)){ foreach ($obj as $key=>$value){ $obj[$key]=$this->get_object_vars_final($value); } } return $obj; } } ?>
原创文章 http://www.yangwo.net/214/
使用方法:
1、配置 $appKey和$appSecret
2、直接实例化一个类,如
$taoke=new taobaoke('连衣裙,1000,50','笑望书'); $taokeArr=$taoke->getTaokeResult();
$taokeArr就是一个包含查询到的淘客数据的二维数组,根我们在数据库里查询多条记录返回的结果一样
3、可以用foreach()循环打印$taokeArr
<php
header("Content-Type:text/html;charset=UTF-8");
/*本程序功能:根卖家昵称获取卖家店铺sid,还有店铺标题*/
//config
$appKey = '12345678; //你的密匙
$appSecret = '123456789';
$usernick = 'grayvoice'; //你的用户名
$salenick= '缺水鱼儿'; //卖家昵称
//签名函数
function createSign ($paramArr) {
global $appSecret;
$sign = $appSecret;
ksort($paramArr);
foreach ($paramArr as $key => $val) {
if ($key !='' && $val !='') {
$sign .= $key.$val;
}
}
$sign = strtoupper(md5($sign));
return $sign;
}
//组参函数
function createStrParam ($paramArr) {
$strParam = '';
foreach ($paramArr as $key => $val) {
if ($key != '' && $val !='') {
$strParam .= $key.'='.urlencode($val).'&';
}
}
return $strParam;
}
//解析xml函数
function getXmlData ($strXml) {
$pos = strpos($strXml, 'xml');
if ($pos) {
$xmlCode=simplexml_load_string($strXml,'SimpleXMLElement', LIBXML_NOCDATA);
$arrayCode=get_object_vars_final($xmlCode);
return $arrayCode ;
} else {
return '';
}
}
function get_object_vars_final($obj){
if(is_object($obj)){
$obj=get_object_vars($obj);
}
if(is_array($obj)){
foreach ($obj as $key=>$value){
$obj[$key]=get_object_vars_final($value);
}
}
return $obj;
}
//参数数组
$paramArr = array(
'app_key' => $appKey,
'method' => 'taobao.shop.get',
'format' => 'xml',
'v' => '1.0',
'timestamp' => date('Y-m-d H:i:s'),
'fields' => 'sid,nick,title', /*想要返回的数据的相应参数,sid对应卖家店铺id,nick对应卖家昵称,这里其实不用返回,因为已经知道了嘛。title对应卖家店铺标题,也就是店铺名称*/
'nick' => $salenick //卖家昵称
);
//生成签名
$sign = createSign($paramArr);
//组织参数
$strParam = createStrParam($paramArr);
$strParam .= 'sign='.$sign;
//访问服务
$url = 'http://gw.api.taobao.com/router/rest'.$strParam;
$result = file_get_contents($url);
$result = getXmlData($result);
$sid = $result['shop']['sid']; //返回卖家店铺ID
$nick = $result['shop']['nick']; //返回卖家昵称
$title = $result['shop']['title']; //返回卖家店铺标题
>
<php echo '卖家店铺ID:'.$sid.'<br>';> <!-- 在页面打印店铺ID -->
<php echo '卖家昵称:'.$nick.'<br>';> <!-- 在页面打印卖家昵称-->
<php echo '店铺标题:'.$title.'<br>';> <!-- 在页面打印卖家店铺标题 -->
相关文章推荐
- php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
- php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
- WordPress教程: 根据分类名称获取分类ID、分类别名
- 淘宝客,根据淘宝Url,获取到商品的ID
- delphi根据进程ID获取进程路径
- Android根据图片文件名获取它的资源ID 的两种方式
- magento 根据attribute code/id获取attribute对象 及options
- 根据sessionId获取相应的session
- 根据菜鸟教程JavaScript边看边总结(纯手工,增删改查)
- 根据图片名获取ID
- Android根据图片资源ID获取文件名
- C++ Windows 下 根据进程名获取进程ID 以及该进程下所有窗口的句柄
- 根据BDUSS获取用户ID信息
- GridView根据循环按钮获取当前行ID或其他字段
- 根据sessionId获取Session对象
- 根据关键词获取进程ID然后杀掉进程
- 黄聪:WordPress 多站点建站教程(五):获取子站点用户信息(通过输入站点ID号来获取该站点的所有用户)
- 根据ID获取CEdit的句柄实例
- js如何根据id获取标签内的值,以及如何通过id赋值
- 根据资源ID名获取ID值