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": {}
}
最後更新:2016-12-26 23:58:24