注:无法上传截图,提示system.net.webexception错误,所以本篇的效果图无法展示,请谅解,待下次再试上传
淘宝API开发(二)淘宝API接口功能测试
上篇介绍了淘宝开放的API接口,根据功能说明,我们对几个接口进行测试,其他的接口,可以照猫画虎。点击任意接口,在功能描述页面,调用级别apiType,apitype分别有三个值:
我们分别找
taobao.items.get 、 taobao.items.onsale.get 接口进行测试,一个不用授权,一个用授权,具体授权的意思就是,掌柜没给你授权,你就不能访问或修改其淘宝店的内容。打开vs2008,新建网站,如下
图略,原因在开头说明了
简单说下,taobaiApi.cs,主要是各个接口的方法,如:
/// <summary> /// 获取某会员商品列表达式 /// </summary> /// <param name="q"></param> /// <param name="fields"></param> /// <param name="page_no"></param> /// <param name="page_size"></param> /// <param name="nicks"></param> /// <returns></returns> public XmlDocument taobao_items_get(string q, string fields, int page_no, int page_size, string nicks) { Util.ParamsBuild pb = new Util.ParamsBuild(SessionID, "taobao.items.get"); pb.AddParam("fields", fields);//"iid,delist_time" pb.AddParam("v", VERSION); if (q != string.Empty) pb.AddParam("q", q); if(page_no != 0) pb.AddParam("page_no", page_no); if(page_size != 0) pb.AddParam("page_size", page_size); // / pb.AddParam("nicks", nicks); //if(order_by != "") // pb.AddParam("order_by", order_by); string data = pb.GetURL(); return Util.HttpRequest(data); }
在API接口中,着重说下sip_sign 这个参数,这个参数是API接口传递参数的Md5加密,传递的参数是按字母顺序升序排列,也就是说要从a-z的顺序排列后,通过MD5加密得到的。
所有参数保存到由Util.ParamsBuild类实例中,具体的看下代码吧
1不用授权接口:taobao.items.get接口, 此接口方法用以搜索商品信息
以淘宝掌柜”鑫名品”为例,查看其宝贝列表,我无意冒犯掌柜”鑫名品”,” 鑫名品”请谅解.
运行后效果如图:
图略,原因在开头说明了
主要代码
1/**//// <summary> 2 3 /// 获取产品列表 4 5 ///// </summary> 6 7 private void GetProList() 8 9 { 10 11 //掌柜鑫名品,查看其宝贝列表,我无意冒犯掌柜鑫名品 12 13 绑定到GridView1#region 绑定到GridView1 14 15 CreatTable(); 16 17 myapi = new taobaoApi(); 18 19 XmlDocument mydoc = myapi.taobao_items_get("", "iid,title,nick,type,cid,pic_path,delist_time,price,post_fee", 0, 0, "鑫名品"); 20 21 XmlNodeList mylist = mydoc.SelectNodes("rsp/item"); 22 23 int num = int.Parse(mydoc.SelectSingleNode("/rsp/totalResults").InnerText); 24 25 try 26 27 { 28 29 AddXmlNodesToTable(mylist); 30 31 32 33 //this.Label1.Text = "共有 " + num.ToString() + " 商品"; 34 35 this.GridView1.DataSource = dt; 36 37 this.GridView1.DataBind(); 38 39 } 40 41 catch (Exception err) 42 43 { 44 45 string test = err.Message; 46 47 } 48 49 #endregion 50 51 52 53 返回string值,主要是根据string内容,生成xmlnodelist#region 返回string值,主要是根据string内容,生成xmlnodelist 54 55 56 57 //myapi = new taobaoApi(); 58 59 //string mydoc = myapi.taobao_items_get2("", "iid,title,nick,type,cid,pic_path,delist_time,price,post_fee", 0, 0, "鑫名品"); 60 61 //divMeg.InnerText = mydoc; 62 63 #endregion 64 65 66 67 68 69}
这个接口我写了两个实现方法,一个返回XmlDocument,一个返回string,接口方法返回string型的,主要是让大家看看接口里的源数据格式,可以根据格式运行xml操作,如, XmlNodeList mylist = mydoc.SelectNodes("rsp/item");
2.需要授权的接口测试:taobao.items.onsale.get, 此接口方法以实现得到当前会话用户(必须为卖家)的出售中商品列表
运行后,返回如下代码
<?xml version="1.0" encoding="utf-8" ?><error_rsp><code>1004</code><msg>needBinduser</msg><url>http://sip.alisoft.com/sip/login?sip_apiname=taobao.items.onsale.get&sip_appkey=21824&sip_sessionid=dcd2dae7-7f13-4af8-9346-c26d9e28a667&sip_apptype=1&sip_applevel=level1</url></error_rsp>
在http://isp.alisoft.com/apidoc/api/apiIndex.html#isp_taobao-5-29查到
1004 |
needBinduser |
需要绑定用户 |
原因:在调用此api时,isp要求用户验证并绑定(登录)。在请求中没有带sip_usertoken参数,无法进行绑定 |
需要绑定用户,说白了呢,就是要登录下淘宝,进行一下授权,当然,我不知道” 鑫名品”密码,就是自己的淘宝帐号演示了,隐掉divMeg.InnerText = content; 恢复Response.Redirect(url.InnerText + "&sip_redirecturl=" + sip_redirecturl);
再次运行,如下 (图略,原因在开头说明了)
输入淘定帐号与密码后,如下:(图略,原因在开头说明了)
点击确认后,出现 (图略,原因在开头说明了)
参考
http://www.cnblogs.com/edobnet/archive/2009/02/05/1384526.html
值得看的贴子:
【API指南】如何上传和修改商品http://forum.alisoft.com/viewthread.php?tid=2711&extra=page%3D2
用户绑定的参数
http://forum.alisoft.com/read.php?tid=19220&page=e&#a
更新商品的java demo
http://forum.alisoft.com/read.php?tid=4940
对taobao.item.update和taobao.item.add中image参数的思考
http://forum.alisoft.com/read.php?tid=11316
求助:发个添加商品图片的DEMO,谢谢!