Tongji API 使用流程
优质
小牛编辑
129浏览
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安全登录使用手册。
数据服务
调用示例
调用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部分提交。
参数名 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
username | string | 是 | 用户名 |
password | string | 是 | 通过登陆服务获取到的st票据 |
token | string | 是 | 申请获取到的token |
account_type | uint | 是 | 账户类型,如 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+1 | Unknown Error | 未知或其他错误 |
base+2 | Invalid User | 无效用户或尚未接受协议 |
base+3 | Invalid Site | 站点不存在或者不属于该用户 |
base+4 | Invalid 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": {}
}