TOP作为淘宝数据插槽,只要用户按照TOP的规范拼装一个正确的URL,通过HTTP请求到TOP,就能够拿到用户自己需要的数据。
调用原理的示意图如下:在这里插入图片描述3.2使用方式详解1)参数介绍API由入参和出参(返回结果)组成,其中入参包含系统级参数和应用级参数。
系统级参数:对于每个API均一致,主要用于加密、标识用户身份、API协议版本等用途。
参数名类型是否必须参数解释methodstringYAPI接口名称sessionstringNTOP分配给用户的SessionKey,如果需要访问用户隐私数据必选。
timestampstringY时间戳,格式为yyyy-mm-dd HH:mm:ss,例如:2008-01-25 20:23:30。淘宝API服务端允许客户端请求时间误差为10分钟(授权码10分钟有效期)。formatstringN可选,指定响应格式。默认xml,目前支持格式xml,jsonapp_keystringYTOP分配给应用的AppKeyvstringYAPI协议版本,可选值:2.0。signstringYAPI输入参数签名结果sign_methodstringY参数的加密方法选择,可选值是:md5,hmac应用级参数:针对API的不同用途,一般应用级参数各不相同,详细参见API文档。2)签名方法调用API时,需要将所有入参以及入参值加入签名,即:系统级参数(除去sign)名称、系统级参数值、应用级参数名称、应用级参数值全部加入签名。I.签名参数串排序签名时,根据参数名称,将除签名(sign)和图片外所有请求参数按照字母先后顺序排序:key + value … key + value 。注:1、 排序若首字母相同,则对第二个字母进行排序,以此类推。2、value无需编码。3、对于非必选参数,如果没有value值,也可不参与签名。例如:将“foo=1,bar=2,baz=三” 排序为“bar=2,baz=三,foo=1”参数名和参数值链接后,得到拼装字符串bar2baz三foo1II.签名算法淘宝同时支持md5和hmac两种加密方式? md5加密方法:选择md5加密方式,系统级参数sign_method=md5;将注册应用时得到的密钥(AppSecret)同时拼接到参数字符串头、尾部进行md5加密,再转化成大写,格式是:byte2hex (md5(AppSecrekey1value1key2value2… AppSecre))。? hmac加密方法::选择hmac加密方式,系统级参数sign_method=hmac;用hmac的md5方式,只需在排序后的字符串头部加入AppSecre,签名后再转化成大写,格式是:byte2hex (hmac(AppSecre key1value1key2value2…))。注:hex为自定义方法,JAVA中md5是对字节数组加密,加密结果是16字节,我们需要的是32位的大写字符串。III.签名实例调用API:taobao.item.get,使用appkey=test;appsecret=test使用系统默认md5为例,因为各语言语法不一致,以下实例只体现逻辑,输入参数为:系统级参数应用级参数method=taobao.item.gettimestamp=2010-06-20 17:51:30format=xmlapp_key=testv=2.0fields=descnick=测试帐号num_iid= 5159315527sign_method=md5?
第一步:按照参数名称升序排列app_key=testfields=descformat=xmlmethod=taobao.item.getnum_iid= 5159315527nick=
测试帐号sign_method=md5timestamp=2010-06-20 17:51:30v=2.0?
第二步:生成sign拼装字符串:连接参数名与参数值,并在首尾加上app_secret(这里假设appsecret=test)值:testapp_keytestfieldsdescformatxmlmethodtaobao.item.getnum_iid5159315527nick
测试帐号sign_methodmd5timestamp2010-06-20 17:51:30v2.0test得到32位大写md5值: C759772107FB3FD90ACC76BC5831BB963)发送http请求拼装URL:将所有参数值转换为UTF-8编码,然后进行拼装。
×tamp=2010-06-20+17%3A51%3A30&v=2.0范例中,http://gw.api.taobao.com/router/rest为API调用入口。
正式环境:http://gw.api.taobao.com/router/rest
沙箱环境:http://gw.api.tbsandbox.com/router/rest
以上是从行业内了解到的一些情况,有兴趣的可交流留言。请查看http://console.open.onebound.cn/console/?i=Turbo