爆款天天有! [登录] [注册] 淘客招商 商家合作

 

API调用指南

说明调用 API 接口时,即是与服务器进行一次数据交互的过程,所有的 API 都是基于 REST 基础的接口规范,可兼容多种编程语言,同时大部分 API 都支持 http post 和 http get 两种方法,但对于写操作的接口只支持 http post 方法,推荐大家使用 http post 方法。

认证方式

采用 oauth1.0 认证,暂不需要授权,网站主在后台申请应用生效后,即可以调用 api

API 调用原理简介

调用时, API 客户端,调用 API 服务端的数据时的交互流程

 

请求签名

所有的 OAuth 请求使用同样的算法来生成 (signature base string) 签名字符基串和签名。

base string 是把 http 方法名 , 请求 URL 以及请求参数用 & 字符连起来后做 URL Encode 编码。具体来讲, base string 由 http 方法名,之后是 & ,接着是过 url 编码 (url-encoded) 之后的 url 和访问路径及 & 。接下来,把所有的请求参数包括 POST 方法体中的参数,经过排序 ( 按参数名进行文本排序,如果参数名有重复则再安参数值进行重复项目排序 ) ,使用 %3D 替代 = 号,并且使用 %26 作为每个参数之间的分隔符,拼接成一个字符串。

这个算法可以简单表示为:

httpMethod + "&" + url_encode( base_uri ) + "&" + sorted_query_params.each { | k, v | url_encode ( k ) + "%3D" + url_encode ( v ) }.join("%26")

无论生成何种 OAuth1.0 请求 , 生成 BASE STRING 的规则始终不变。

平台要求所有的 OAuth 请求都使用 HMAC-SHA1 算法生成签名。

系统参数介绍  

名称

类型

是否必需

描述

method

string

Y

API 接口名称

timestamp

long

Y

时间戳,格式为 1324995402 ,例如: 自 1970 年 1 月 1 日(00:00:00 GMT)以来的到 2008-01-25 20:23:30 的秒数为1201263810000。(亿起发开放平台 API 服务端允许客户端请求时间误差为 6 分钟)

format

string

N

可选,指定响应格式。默认 xml, 目前支持格式为 xml,json

app_key

string

Y

Yiqifa 分配给应用的 AppKey

v

string

Y

API 协议版本,可选值 :1.0 。

sign

string

Y

API 输入参数签名结果

sign_method

string

Y

参数的加密方法,可选值是: hmac

 

 

获取购物客分类示例

接下来,就可以进行用户验证 ( 如果验证成功,将会返回用户的详细信息 ) 了。以下是进行用户验证的相关参数:

oauth_consumer_key - appkeyinyourapp oauth_nonce - 1845086903 oauth_signature_method - HMAC-SHA1 oauth_token - openyiqifa oauth_timestamp - 1324994197 oauth_version - 1.0

 

使用 BASE STRING 生成算法:

GET&http% 3A % 2F %2Fapi.ftxia.com% 3A 8080%2Fopen8mob%2FgetSubCategory.do&category%3D%25E7%2594%25B5%25E8%2584%2591%26oauth_consumer_key%3Dappkeyinyourapp%

26oauth_nonce%3D1845086903%26oauth_signature_method%3DHMACSHA1%26oauth_timestamp%3D1324994197%26oauth_token%3Dopen8mob%

26oauth_version%3D1.0%26page%3D1%26pageRowCount%3D5

 

然后将 oauth_comsumer_secret 和 oauth_token_secret 以 & 作为分隔符拼起来。将拼接后的字符串作为签名的 KEY 进行加密,生成签名。

生成的签名如下 :

FRS62fmK%2BPmBeW5lGoQ38vkq8rI%3D

接下来就可以通过 http 发送请求 , 生成的 http header 如下 :

OAuthoauth_consumer_key="appkeyinyourapp"

oauth_signature_method="HMAC-SHA1"

oauth_timestamp="1324995402"

oauth_nonce="2635944066"

oauth_version="1.0"

oauth_token="open8mob"

oauth_signature="uKdluk1fkzSAj6EeOQSX0xDmEjc%3D"

 

响应如下 :

			
         { 
         	     "categorys": [
               {   
         	     "catName":" 手机通讯 " 
                    },  
                { 
                    "catName":" 图书音像 " 
               } 
             ] 
          }  
        

Java SDK 调用示例

具体每个API的调用示例请参考:API测试工具右下角的SDK调用示例代码。此处以商品搜索API为例说明:

SearchProductRequest request = new SearchProductRequest("pid,p_name,web_id,web_name,ori_price,cur_price,pic_url,catid,cname,p_o_url,total","手机");

DefaultEOPClient dec = new DefaultEOPClient(request.getApiName(), "inyourappkey", "inyourappsecret","xml");

request.setWebId("1104,2006,1102");

request.setCatId("122010000");

request.setOrderBy(1);

request.setPageNo(1);

request.setPageSize(1);

request.setPriceRange("1,100");

SearchProductResponse response = dec.execute(request);

List list = response.getList();

long total = response.getTotal();

创建一个 XXXRequest 实例,设置 fields(需要获取的数据字段名称)与 该API的必填参数(此处为关键词)

创建一个 DefaultEOPClient 客户端实例,设置 请求的接口名称,您的appKey和appSecret与需要获取的数据格式

设置请求该API的非必填参数

执行该客户端request,并获取一个名称为XXXResponse的服务器响应

解析XXXResponse,获取服务器返回的数据