Tongji API 使用流程

优质
小牛编辑
134浏览
2023-12-01
使用指南 - 数据报告 - Tongji API - Tongji API 使用流程

采用HTTP+Json的方式。所有查询接口均采用GET方法,所有提交接口均采用POST方法。所有请求的输入参数由系统级输入参数和应用级输入参数组成,每个参数值都必须采用UTF-8字符集编码,在发送调用请求时,所有参数都必须进行urlencode编码处理。返回的数据格式为Json。

登陆服务

重用统计的登陆服务https://api.baidu.com/sem/common/HolmesLoginService

请求和响应过程包括rsa公钥加密、gzip打包等步骤,具体调用方法由Tongji API Demo给出,此外还可参考Java版登录demo_api-client,与DR-API安全登录使用手册

数据服务

数据服务地址为https://api.baidu.com/json/tongji/v1/ReportService

调用示例

调用client需要openssl支持,curl示例如下:

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, 'https://api.baidu.com/json/tongji/v1/ReportService/getData'); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); 
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); 
curl_setopt($curl, CURLOPT_HTTPHEADER, array('UUID: '.UUID, 'USERID: '.$ucid, 'Content-Type:  data/json;charset=UTF-8')); 
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $ postData); 
curl_setopt($curl, CURLOPT_TIMEOUT, 30); 
curl_setopt($curl, CURLOPT_HEADER, 0); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 

系统级输入参数

系统级输入参数通过post数据中的header部分提交。


参数名参数类型是否必须描述
usernamestring用户名
passwordstring通过登陆服务获取到的st票据
tokenstring申请获取到的token
account_typeuint账户类型,如  ZhanZhang:1,FengChao:2,Union:3,Columbus:4

响应格式

响应数据由header和body两部分构成:

1.header是api.baidu.com提供的头数据,包括desc, failures, oprs, succ,
oprtime, quota, rquota, status等;

2.body为Tongji API提供的内容数据,具体参见各个接口的返回参数定义。

返回示例

{ 
    "header": { 
        "desc": "success", 
        "failures": [], 
        "oprs": 1, 
        "succ": 1, 
        "oprtime": 0, 
        "quota": 200000, 
        "rquota": 200000, 
        "status": 0 
    }, 
    "body": { 
        "data": [ 
            { 
                "list": [ 
                    { 
                        "status": 0, 
                        "create_time": "2010-01-01 01:00:00", 
                        "domain": "tongji.baidu.com", 
                        "site_id": 12345, 
                        "sub_dir_list": [] 
                    }, 
                    { 
                        "status": 0, 
                        "create_time": "2010-01-02 01:00:00", 
                        "domain": "www.baidu.com", 
                        "site_id": 12346, 
                        "sub_dir_list": [] 
                    }, 
                ] 
            } 
        ] 
    } 
} 

错误响应

错误响应由header中failures定义的,包括code和message两个信息,这两个参数只在异常响应的输出中出现,正常响应的输出不会出现这两个参数。

错误码定义


错误码错误信息描述
base+1Unknown Error未知或其他错误
base+2Invalid User无效用户或尚未接受协议 
base+3Invalid Site站点不存在或者不属于该用户
base+4Invalid Parameter参数等校验错误

其中base由api.baidu.com分配;

错误码会随着扩展需求的增加而不断补充。


错误返回示例

{ 
    "header": { 
        "desc": "failure", 
        "failures": [ 
            { 
                "code": 9331, 
                "message": "Invalid Site Or No Permission" 
            } 
        ], 
        "oprs": 1, 
        "succ": 0, 
        "oprtime": 0, 
        "quota": 200000, 
        "rquota": 200000, 
        "status": 2 
    }, 
    "body": {} 
}