试水TB开发者平台,目前可调通添加商品,获取商品列表,以及添加“主动通知”监听。现把整个过程进行简要梳理。官方文档虽详细。
第一步:注册成为平台开发者,然后创建一个自己的应用。
这里请先注意一下在应用设置->应用证书中,包含MyAppTest的App key与App secret,还有SDK下载。
在沙箱里注册一个卖家帐号:名称替换是要以sandbox_开始
然后,就可以了。。。
关键是要理解TB的授权机制,可查看文档
先明白几个概念:
App key:App的唯一标识,有时也称为client_id(比如OAuth2.0根据授权号获取SesstionKey(有时也要UserToken)时)
App secret: App的密钥,有时也称为client_secret(同上)
SessionKey:用户授权后的标识,就向用户家的房门钥匙。
回调URL:当用户点击“授权”后,TB会调用这个URL,并把用户的sessionKey一并发过来。
授权有四种方式,原理是一样:
有一个app,有一个用户,用户想用这个app,就拿app key去TB的平台申请(通过一个包含了appkey的URL就可以),TB会跳出用户登陆界面,
提示用户先登陆,然后再二次验证(手机短信),确认后,点击“授权”,则TB把sessionKey回调给上述的URL。然后,app就有sessionKey了,
就可以进房间了。。。当然也可以不使用回调。
为了显示智商高,我们不使用回调。来吧,干货
1、
浏览器中输入:https://oauth.tbsandbox.com/authorize?response_type=code&client_id=1021688926&redirect_uri=urn:ietf:wg:oauth:2.0:oob&state=1212&view=web
注意:把上述的client_id替换为app的->应用/应用设置/沙箱环境管理
失败了吧!我就知道,你会把这个client_id写成app的正式id,再看上面注意的后半部分。
成功将会返回一个授权码
2、使用SDK获取token
Map<String, String> param = new HashMap<String, String>(); param.put("grant_type", "authorization_code"); param.put("code","TKNTer7J2jN4w15Bl3Rze0XU25829"); param.put("client_id", "102123688926"); param.put("client_secret", "sandbox4054d5e4ssd6c4408be596b6669"); param.put("redirect_uri", "urn:ietf:wg:oauth:2.0:oob"); param.put("view", "web"); // param.put("state", state); try { String responseJson = WebUtils.doPost( "https://oauth.tbsandbox.com/token", param, 3000, 3000); System.out.println(responseJson); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
返回的是seesionKey和refreshKey
上面已经提了在哪儿下载SDK了哦!
再送一个刷新sessionkey的吧
3、刷新sessionKey
Map<String, String> param = new HashMap<String, String>(); param.put("grant_type", "refresh_token"); param.put("refresh_token", "6201f26c7a14733cab6a1b4c47bsdf61c6334ZZ6bcef9d9ceb3611768589"); param.put("client_id", "1021688943426"); param.put("client_secret", "sandbox405sdfs4d5e4d6c4408be596b6669"); param.put("view", "web"); // param.put("state", state); try { String responseJson = WebUtils.doPost( "https://oauth.tbsandbox.com/token", param, 3000, 3000); System.out.println(responseJson); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
至此,我们持有的TA房间的钥匙了,嗯。。。是沙箱环境下,正式测试环境一个样(我还没有测,TB说的)。
--------------------------------------文字不够代码凑--------------------------------------------------------------------------
验证一下能不能往添加商品,注意:测试过程出现的CID是类目ID,店铺里可以定。
public void testBaseAddItem() { TaobaoClient client = new DefaultTaobaoClient( "http://gw.api.tbsandbox.com/router/rest", "10241688926", "sandbox4054d5e4d6c4408be596b6669", "xml", 600, 600, Constants.SIGN_METHOD_HMAC); ItemAddRequest req = new ItemAddRequest(); req.setNum(1L); req.setPrice("100"); req.setType("fixed"); req.setStuffStatus("new"); req.setTitle("沙箱测试ONE"); req.setDesc("描述最少5字符,最多不能超过25000字符"); req.setLocationState("浙江"); req.setLocationCity("杭州"); req.setCid(162104L); req.setPaimaiInfoDeposit(10000L); try { ItemAddResponse response = client .execute(req, "61025014e19374100adf18fcceb81ab4ba26aced3d556842a3611768589"); System.out.println(response.getMsg()); } catch (ApiException e) { e.printStackTrace(); } }
--------------------------------------主动通知--------------------------------------------------------------------------------
原理:提交一个主动通知请求,然后建立一个长连接,TB就会根据请求的条件,将增量数据实时回调给长连接下的Listener,嗯,代码不忽悠。
TaobaoClient client = new DefaultTaobaoClient( "http://gw.api.tbsandbox.com/router/rest", "1021688926", "sandbox4054d5e4d6c4408be596b6669"); IncrementCustomerPermitRequest req = new IncrementCustomerPermitRequest(); req.setType("get,syn,notify"); req.setTopics("trade;refund;item"); req.setStatus("all;all;ItemAdd,ItemUpdate"); try { IncrementCustomerPermitResponse response = client .execute(req, "62025304ea18fcceb81ab4ba26aced3d556842ZZb4e7fca3611768589"); System.out.println(response.getBody()); } catch (ApiException e) { e.printStackTrace(); } Configuration conf = new Configuration("1021688926", "sandbox4054d5e4d6c4408be596b6669", null); conf.setConnectUrl("http://stream.api.tbsandbox.com/stream"); TopCometStream stream = new TopCometStreamFactory(conf).getInstance(); stream.setConnectionListener(new InnerConnectionLifeCycleListener()); stream.setMessageListener(new InnerTopCometMessageListener()); stream.start();
测试的话,可以再注册一个买家号,购买沙箱中那个卖家下的商品,回调就来了。
代码中的app key或者app secret请换掉!
相关推荐
淘宝作为中国乃至全球最大的电子商务平台之一,其技术架构不仅支撑着庞大的交易量,还面临着日益增长的第三方开发者需求。为此,淘宝构建了一个开放平台——淘宝开放平台(TaoBao Open Platform,简称TOP),该平台...
总结来说,淘宝开放平台聚石塔是一个强大的云服务管理平台,它提供了便捷的云资源购买和管理功能,无论是对于开发者构建应用,还是商家运行在线业务,都能提供高效且稳定的云计算支持。通过理解并熟练掌握聚石塔的...
在使用淘宝API时,首先需要注册成为淘宝开发者,获取到API密钥(AppKey和AppSecret),这是安全访问API的基础。然后,根据需求选择合适的API接口,如"商品发布"、"订单查询"等,并查阅相应的API文档了解参数、请求...
同时,加入淘宝开发者社区,与其他开发者交流经验,解决遇到的问题。 总结来说,淘宝SDK2.0简易模板为开发者提供了一条快速接入淘宝平台的捷径,通过学习和使用这个模板,开发者可以更高效地开发出与淘宝平台无缝...
总结来说,这个压缩包文件提供的内容涵盖了淘宝大数据平台的核心组成部分——云梯分布式计算平台和HBase分布式数据库的实战经验。通过学习这些资料,读者可以了解到在大规模电商环境中如何设计、优化和管理大数据...
总结,淘宝API开发手册是开发者进入淘宝开放平台的钥匙,它详尽介绍了如何利用这些接口来实现各种功能,帮助开发者在淘宝生态中发挥无限的创新潜力。无论你是电商新手还是资深开发者,都可以从中找到所需的信息,...
1. 淘宝开放平台(TOP)的API使用,包括数据获取和更新。 2. C#编程语言在API接口开发中的应用。 3. 接口设计的原则,如RESTful架构。 4. API安全性和认证机制。 5. 订单处理流程,包括发货程序的实现。 6. 系统集成...
1. **OpenAPI形式开放的基础服务**:通过API接口向第三方开放淘宝的基础服务,使得外部开发者能够构建与淘宝网互动的应用程序。 2. **自有的开放式应用平台**:为开发者提供了创建和部署应用的环境,支持各种类型的...
总结来说,淘宝客阿里妈妈开放平台SDK-C版本是为C语言开发者提供的一种工具,帮助他们接入阿里妈妈平台,实现商品推广和佣金获取等功能。使用这个SDK需要对C语言有深厚的理解,同时也需要熟悉网络编程和接口调用的...
1. **登录淘宝开放平台**:首先,需要访问淘宝开放平台官网(http://open.taobao.com/),使用已实名认证的淘宝账号登录。 2. **申请成为开发者**:登录后,根据提示完成开发者身份的申请。这一步非常重要,因为...
描述中强调文档是来自淘宝数据平台团队的总结,这说明文档内容具备权威性和实用性,对于编写Hive程序的人来说将有极大的帮助。考虑到Hive在处理大规模数据分析时的广泛应用,掌握Hive编程的高效技巧对于任何涉及大...
总结,.NET仿淘宝交易平台的构建是一个全面的项目,涵盖了后端服务、数据库操作、前端交互等多个方面。开发者在实践中不仅能深化对.NET技术的理解,还能掌握电商系统的业务流程和用户需求。这个项目不仅是技术的演练...
本文档旨在为开发者提供淘宝开放平台中主动通知业务的详细技术指南。此服务通过长连接的方式实现增量数据推送,提高了数据传输的效率与实时性。 #### 协议 **请求方法**:该接口仅支持`POST`请求。若使用其他HTTP...
总结起来,Java淘客助手是淘宝客们不可或缺的工具,它通过Java技术实现了快速生成淘宝口令的功能,且免费提供给用户,大大提升了推广效率。配合淘宝客导购系统,可以实现更加精细化的营销策略。同时,Java的稳定性和...
总结,淘宝分销平台的需求书主要涵盖了系统的核心功能、用户体验、架构设计、数据安全及性能优化等方面,旨在打造一个高效、安全、易用的在线分销环境,促进供应商与分销商之间的合作,推动电商行业的繁荣发展。...
在互联网电商领域,淘宝网作为中国最大的C2C平台,提供了丰富的API接口供开发者使用。本资源提供的是一款基于ASP(Active Server Pages)语言编写的淘宝top-api接口模块,它具有轻量级、高效、稳定的特性,对于...
总结来说,这个压缩包提供的资源可以帮助开发者快速掌握如何利用TOP4R库来开发基于淘宝平台的应用程序。它包含了一个完整的项目结构,从源代码到文档和示例,为快速应用开发提供了全面支持。对于希望在企业环境中...
聚石塔使用手册知识点总结 一、聚石塔概述 聚石塔是一款云计算平台,旨在提供便捷的云主机和云数据库购买和使用体验。该平台为开发者提供了详细的使用手册,以便他们更好地理解聚石塔的使用流程和注意事项。 二、...
### 淘宝开放平台错误自查手册:深入解析与应对策略 #### 一、错误处理流程概览 在淘宝开放平台的开发过程中,错误处理是一个至关重要的环节,它确保了API调用的稳定性和可靠性。根据《淘宝开放平台错误自查手册》...