淘宝api的简单应用现在随着saas技术的不断发展,与之相配套的开发测试平台也层出不穷,ali软件作为中国开展saas的先驱,其top开发平台便是其典型的代表。 现在TOP开发平台还处于发完善时期,其开发的api接口以及相应的文档资料还不是很全,就目前来说,整个资料有点乱,没有一个很好的开发指南。在最近一个星期的时间中,自己查看了很多淘宝api的开发资料,虽然没有进行实际环境下的运行,但是在测试环境下还是取得了成功,对top平台的整个开发流程有了比较好的了解,现将自己的所学经验展示出来,希望对更多开发淘宝API的开发者有所帮助。 自己开发的例子是其他web应用。 在淘宝的api中,大体分为两种类型:一种是需要sessionKey的,一种是不需要sessionKey的。不需要sessionKey的api,用法比较简单,只需要将自己的所需api以及相关的参数写在请求地址中,top平台的采用的是rest请求方式,相比于soap方式,其更加的简洁快速。在测试环境下,需要将请求发送到http://gw.api./router/rest,后面跟上你所需要查询的参数值,以下就是一个简单的不需要ssessionKey的api请求参数: 在以上的连接中,用到了app_key值,其他具体的参数可以查看相应的api文档,只是sign需要进行数字签名,需要调用相应的函数。该请求返回的是xml格式的内容,所以需要对xml进行相应的解析。 对于需要sessionKey的api,则比较麻烦。首先sessionKey的值获取不是很容易,现将测试环境下,开发WEB其它应用的sessionKey值的获取方式说明一下,第一步需要获取授权码,访问http://open.taobao.com/isv/authorize.php?appkey={appkey} 选择测试环境账号并填写回调URL,对于这个回调地址,自己之前不甚了解,遇到了一些问题,但是还是解决了,我自己新建了一个jsp文件,里面含有一个request.getParameter("top_session")方法,所以我将回调地址写为该jsp地址。然后点击“获取授权码”,即可获得授权码,接下来通过授权码获取SessionKey。访问http://container.api./container?authcode={授权码},页面会跳转到回调URL 这时调用解析结果的方法,得到sessionKey的值。得到了sessionKey的值之后,你就可以组装参数,将请求发送到http://gw.api./router/rest,放回的结果是你设定的放回格式,调用相应的函数进行解析即可。 我是在top的javademo基础上进行开发的,本来认为没有什么错误,结果在开发中还是遇到了一些问题, 1. 返回的是error,提示是session无效。找了很长时间的原因,结果发现,提交的地址不对,修改地址后正确的返回了结果。 2. sessionKey的获取。Demo中没有说明回调地址的作用,一开始我用的是http://localhost,但结果总是出错,在了解了错误之后,发现其写的解析函数无法进行解析,所以自己根据解析函数的要求,在回调页面中加入了&top_session=<%=request.getParameter("top_session") %>&,这样成功的获取了sessionKey的值。 以上自己在测试api时遇到的困难,希望对大家有所帮助。 |
|