好久没有继续跟进淘宝的API使用了,有很多做相关应用的同行都来咨询,很多都因为自己开发工作比较忙而没有来得及好的处理,前几天,有一个朋友叫帮忙指导如何使用淘宝API,由于原来有一些成熟的例子应用,因此原以为直接运行或者稍微修改一下即可,因此没有太多的注意。

可是,发现淘宝的API应用变化已经很大了,离我最后一篇淘宝API例子的随笔《淘宝API开发系列---淘宝API的测试及使用2 》有一年多的时间了,因此重新到http://api.taobao.com/myresources/standardSdk.htm里面下载最新的SDK进行更新调整,可是里面很多接口已经有所变化,有些已经在客户端SDK里面不再支持。

首先我们需要申请一个应用

特别的是,现在的淘宝API客户端应用,也只有公司账号才能使用,普通的淘宝用户只能使用Web应用方式,貌似如果不是选择客户端应用,那么使用Winform程序,将不能正确获取相关的API信息。我使用公司账号调整一个应用为客户端应用。

我在我原来例子的基础上,根据最新的SDK进行了修改,有些如不需要SessionKey获取用户信息的接口已经不能使用了,例如客户的买入的订单记录也不能使用了,而且新增了很多相关的接口内容。

为了更好对API的使用,我们需要使用淘宝API的测试工具进行测试相关的接口,如下界面所示。

对于需要获取用户私密信息,如店铺及交易等重要信息,还需要获取用户的SessionKey的,我们可以通过下面接口函数,弹出登录窗口,然后登录后,定位到对应的App应用页面,然后页面加载的时候,获取到对应的SessionKey。

通过上面两个对话框的登录和确认操作,获取到TOP授权码,并根据规则获得SessionKey了,这样一些重要数据就可以通过获取其中的SessionKey进行获取了。

首先我们来看看几个功能模块的界面效果和操作代码。

1)获取登录用户的信息

主要代码如下所示:

            if (string.IsNullOrEmpty(sessionKey)){sessionKey = GetAuthorizeCode(this.appkey);}//用户的信息Console.WriteLine("用户的信息");UserSellerGetRequest req = new UserSellerGetRequest(); //实例化具体API对应的Request类req.Fields = "user_id,nick,created,buyer_credit,type,sex";UserSellerGetResponse rsp = myclient.Execute(req, sessionKey);//执行API请求并将该类转换为response对象
            Console.WriteLine(rsp.Body);if (rsp.User != null){//Console.WriteLine(rsp.User.Nick);//Console.WriteLine(ObjectToString(rsp.User));List<User> list = new List<User>();list.Add(rsp.User);this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//对应字段的属性没有“_”字符的this.winGridView1.DataSource = list;}

2)获取单独商品信息

获取单独的产品信息不需要SessionKey,具体代码如下所示。

            //单独商品的信息Console.WriteLine("单独商品的信息");ItemGetRequest req = new ItemGetRequest();req.Fields = "num_iid,title,nick,pic_path,cid,price,type,location.city,delist_time,post_fee";req.NumIid = 10838073156L;//3838293428L;ItemGetResponse itemRsp = myclient.Execute(req);if (itemRsp != null && itemRsp.Item != null){List<Item> list = new List<Item>();list.Add(itemRsp.Item);this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//对应字段的属性没有“_”字符的this.winGridView1.DataSource = list;}

3)获取店铺商品列表

开发淘宝应用,很多时候,用于本公司的ERP或者产品管理系统与淘宝店铺的数据同步,因此需要获取自己商店的一些商品数据,然后进行修改更新等操作。获取商品信息主要代码如下所示。

            if (string.IsNullOrEmpty(sessionKey)){sessionKey = GetAuthorizeCode(this.appkey);}//查询店铺商品信息Console.WriteLine("查询店铺商品信息");ItemsOnsaleGetRequest req = new ItemsOnsaleGetRequest();req.Fields = "approve_status,num_iid,title,nick,type,cid,pic_url,num,props,valid_thru,list_time,price,has_discount,has_invoice,has_warranty,has_showcase,modified,delist_time,postage_id,seller_cids,outer_id";req.PageNo = 1;req.PageSize = 40;//显示列表信息ItemsOnsaleGetResponse itemRsp = myclient.Execute(req, sessionKey);if (itemRsp != null){this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//对应字段的属性没有“_”字符的this.winGridView1.DataSource = itemRsp.Items;}

4)获取店铺卖出交易信息

店铺的卖出交易信息获取的代码如下所示。

            if (string.IsNullOrEmpty(sessionKey)){sessionKey = GetAuthorizeCode(appkey);}//卖出交易Console.WriteLine("卖出交易");TradesSoldGetRequest req = new TradesSoldGetRequest();req.Fields = "tid,title,price,type,num_iid,seller_nick,buyer_nick,status,receiver_state,receiver_city,receiver_district,receiver_address";req.PageNo = 1L;req.PageSize = 40L;TradesSoldGetResponse soldRsp = myclient.Execute(req, sessionKey);if (soldRsp != null){this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//对应字段的属性没有“_”字符的this.winGridView1.DataSource = soldRsp.Trades;}

以上就是一些基础淘宝API的使用说明,当然,完善的淘宝应用系统客户,可能需要做更多的东西,如商品信息同步、库存同步、自动评价、自动发货等操作,不过基本的操作思路是很接近的,只需要进一步查找淘宝API的使用说明,以及一些经验代码即可。

主要研究技术:代码生成工具、会员管理系统、客户关系管理软件、病人资料管理软件、Visio二次开发、酒店管理系统、仓库管理系统等共享软件开发
专注于Winform开发框架/混合式开发框架、Web开发框架、Bootstrap开发框架、微信门户开发框架的研究及应用。
  转载请注明出处:
撰写人:伍华聪  http://www.iqidi.com 
    

【.Net码农】【淘宝API】淘宝API开发系列---阿里.聚石塔.开放平台的使用相关推荐

  1. 淘宝API开发系列---阿里.聚石塔.开放平台的使用5

    好久没有继续跟进淘宝的API使用了,有很多做相关应用的同行都来咨询,很多都因为自己开发工作比较忙而没有来得及好的处理,前几天,有一个朋友叫帮忙指导如何使用淘宝API,由于原来有一些成熟的例子应用,因此 ...

  2. 普通安卓码农,如何拥有淘宝、拼多多这样航母级项目架构经验?

    作为一名普通安卓码农,相信大家都有一个成为移动端架构师的梦. 毕竟,安卓行业越来越内卷,这都是一个老生常谈的话题了.如今会写xml和Activity的程序员一抓一大把,如果只是一名普通的安卓码农,那面 ...

  3. arcgis api for js入门开发系列三地图工具栏(含源代码)

    上一篇实现了demo的地图加载展示,在上篇实现的基础上,新增了地图工具栏以及通用地图控件功能,比如地图框选缩放.地图漫游.清空.量算工具.地图导航控件.地图比例尺控件.地图鹰眼图等等,总共分为5个部分 ...

  4. arcgis api for js入门开发系列十八风向流动图

    本篇主要讲述的是利用arcgis api实现风向流动图,效果图如下: 实现思路: 在esri提供的开源githunb基础上进行修改的:https://github.com/gishome/wind-j ...

  5. arcgis api for js入门开发系列十二地图打印(GP服务)

    上一篇实现了demo的地图统计图,本篇新增地图打印,截图如下: (1)地图打印实现的思路如下:首先在创建好地图打印GP模型,设置好模型的参数:其次是验证模型运行模型:然后是发布地图打印的GP服务:最后 ...

  6. 【高德地图API】Web地图开发系列(二)

    ✍.高德地图API

  7. arcgis api for js入门开发系列十七在线地图(天地图、百度地图、高德地图)

    本篇主要讲述的是利用arcgis api加载互联网在线地图服务资源,简单封装一个底图切换控件js,在线地图包括:天地图.高德地图以及百度地图,效果图如下: 实现思路: 1.简单的底图切换控件map.L ...

  8. arcgis api for js入门开发系列六地图分屏对比(含源代码)

    上一篇实现了demo的地图标绘模块,本篇新增地图地图分屏对比模块,截图如下(源代码见文章底部): 对效果图的简单介绍一下,在demo只采用了两分屏对比,感兴趣的话,可以在两分屏的基础上拓展,修改css ...

  9. 关于淘宝开放平台的战略规划

    关于淘宝开放平台的战略规划 --知识产权保护,若需引用,请注明来源. 需要回答的三大问题: 1)  淘宝开放平台怎么发展? 2)  淘宝开放平台究竟在什么模式下才能突破? 3)  淘宝开放平台博客大赛 ...

最新文章

  1. JavaScript响应键盘不再用KeyboardEvent.keyCode,而是用keyboardEvent.code
  2. Java集合篇:HashMap原理详解(JDK1.7及之前的版本)
  3. java创建计数器变量,用于检查变量(计数器)最大长度的Java方法
  4. java课程设计(图书管理系统)
  5. boost context上下文切换
  6. ubuntu 怎么格式化U盘?(转载)
  7. 《深度学习Python实践》附录——聚类分析
  8. BT下载软件开发笔记——种子解析模块的设计与实现
  9. Java实现昵图网摄影图片爬虫
  10. python凹多边形分割_凹多边形拆分
  11. Python 安装pytz
  12. Android4太极,Android 绘制太极图实例详解
  13. 【白嫖系列-怕违规】告别BDWP龟速下载,体验飞一般的感觉
  14. 数据库原理(三):Sql Server操作语句
  15. uni-app支付宝小程序map地图组件基础操作+画多边形+打点连线
  16. 测试环境Hosts设置
  17. Android获取系统邮件账号
  18. react 图片剪切(react-easy-crop)
  19. RFC2326 - Real Time Streaming Protocol (RTSP) 完整中英文对照版
  20. IT界的兄弟姐妹们,大家好。

热门文章

  1. 【LeetCode】417. Pacific Atlantic Water Flow 太平洋大西洋水流问题
  2. 如何用 AppCube,实现那个曾经因为火,而被“封杀”的项目 Working Time丨【玩转应用魔方】
  3. 关于旅行商,哈密顿回路和NP问题的科普
  4. K8s 所有常用端口
  5. C++面试常见题目问与答(汇总一)
  6. 搞科研和赚大钱,可以兼得吗?
  7. 12.4 jason格式
  8. SpringBoot 自定义实现一个启动器starter 教程。
  9. Oracle中where后面加if,SQL:WHERE子句中的IF子句
  10. 《3S新闻周刊》(转帖)