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

简介:

好久没有继续跟进淘宝的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的使用说明,以及一些经验代码即可。

本文转自博客园伍华聪的博客,原文链接:淘宝API开发系列---阿里.聚石塔.开放平台的使用,如需转载请自行联系原博主。



目录
相关文章
|
25天前
|
数据采集 数据挖掘 API
淘宝/天猫获得淘宝商品详情 API 返回值说明
淘宝和天猫的商品详情API返回值提供了商品的各种详细信息,包括基本属性、价格、图片、销售情况等。这些信息对于开发者来说非常有用,可以用来构建商品比价、数据分析、爬虫等应用。
|
1月前
|
安全 中间件 API
跨平台整合:如何在不同系统中使用淘宝商品详情API
使用淘宝商品详情API实现跨平台整合,涉及步骤包括理解平台要求、研究API文档、设计数据模型、开发中间件、确保安全认证、测试调试、遵循法规、UI适配及持续维护。此过程能共享数据,提升效率,增加销售机会,优化顾客体验。注意API调用限制、数据格式及各平台特定需求。
25 1
|
7天前
|
小程序 前端开发 API
小程序全栈开发中的RESTful API设计
【4月更文挑战第12天】本文探讨了小程序全栈开发中的RESTful API设计,旨在帮助开发者理解和掌握相关技术。RESTful API基于REST架构风格,利用HTTP协议进行数据交互,遵循URI、客户端-服务器架构、无状态通信、标准HTTP方法和资源表述等原则。在小程序开发中,通过资源建模、设计API接口、定义资源表述及实现接口,实现前后端高效分离,提升开发效率和代码质量。小程序前端利用微信API与后端交互,确保数据流通。掌握这些实践将优化小程序全栈开发。
|
17天前
|
前端开发 Java API
构建RESTful API:Java中的RESTful服务开发
【4月更文挑战第3天】本文介绍了在Java环境中构建RESTful API的重要性及方法。遵循REST原则,利用HTTP方法处理资源,实现CRUD操作。在Java中,常用框架如Spring MVC简化了RESTful服务开发,包括定义资源、设计表示层、实现CRUD、考虑安全性、文档和测试。通过Spring MVC示例展示了创建RESTful服务的步骤,强调了其在现代Web服务开发中的关键角色,有助于提升互操作性和用户体验。
构建RESTful API:Java中的RESTful服务开发
|
21天前
|
机器学习/深度学习 前端开发 API
实现以图搜货功能,淘宝API开发实战分享
实现以图搜货功能,淘宝API开发实战分享
24 0
|
24天前
|
API 开发者
淘宝商品评论API:连接消费者与商家的桥梁
淘宝商品评论API作为一项技术工具,它的确起到了连接消费者与商家的桥梁作用。
16 0
|
25天前
|
供应链 搜索推荐 BI
深入了解淘宝原数据:获取API接口及其使用场景
在当今数字化的时代,对于电商行业来说,数据具有极大的价值。淘宝作为中国最大的综合电商平台,拥有庞大的商品信息和用户数据。对于开发者和企业来说,淘宝原数据的获取和分析是实现个性化服务和精准营销的基础。本文将介绍如何通过API接口获取淘宝原数据,以及数据的使用场景。
|
27天前
|
人工智能 自然语言处理 API
零一万物API开放平台,正式向开发者开放了!
零一万物API开放平台向开发者开放,提供多领域AI模型,包括自然语言处理、图像识别和语音识别,助力开发者轻松实现智能化功能。平台以简单API调用实现易用性,高性能计算资源保证服务稳定性。按需付费模式降低成本,免费体验机会鼓励尝试。全面的开发者支持包括详细文档、技术支持和定期技术交流会,构建友好社区。开发者需注意账户余额管理。访问平台:&lt;https://platform.lingyiwanwu.com/playground&gt;。
27 6
零一万物API开放平台,正式向开发者开放了!
|
29天前
|
缓存 前端开发 API
构建高效可扩展的RESTful API:后端开发的最佳实践
【2月更文挑战第30天】 在现代Web应用和服务端架构中,RESTful API已成为连接前端与后端、实现服务间通信的重要接口。本文将探讨构建一个高效且可扩展的RESTful API的关键步骤和最佳实践,包括设计原则、性能优化、安全性考虑以及错误处理机制。通过这些实践,开发者可以确保API的健壮性、易用性和未来的可维护性。