百度统计Tongji API可以为网站接入者提供便捷的获取网站流量数据的通道, 从而使网站接入者可向网站帐号提供数据分析、运营监控、网站推广等服务。该用户手册分为三册,全集包含 1.接口概述、2. 接口列表、3.常见问题
本期主要讲解第一部分:接口概述

本文档所描述的API接口均基于HTTP协议,支持GET/POST方法调用,若无特殊说明每个参数值都必须采用UTF-8字符集编码,在发送调用请求时,通过GET方法调用的querystring参数值都必须进行urlencode编码处理,消息返回结果均采用JSON格式。

由于百度商业账号和百度账号的调用方法存在差异,分别进行说明:

一、百度商业账号接口说明

接口的请求需要向相应API通过POST的方式发送JSON格式的数据, 该请求数据的结构分为两个部分:

{    "header" : {
        ...
        },    "body"  : {
        ...
    }
}
  • header 部分 : 为请求的头部, 用于定义当前请求用户的相关身份信息, header部分为必填部分, 且不随请求API的变化而发生改变。该部分需定义的参数有:

    • username : 账号的用户名

    • password : 账号的密码

    • token : 您申请的token

    • account_type : 一般为1

  • body 部分 : 对于不同的API, body部分有所不同:

    • 对于接口 获取用户的站点列表 : body部分不需定义

    • 对于接口 获取站点报告数据 : body部分需要定义

二、百度账号接口说明

调用百度账号的 API 接口,用户需要通过百度开发者中心的身份验证,具体步骤如下:

  1. 登录百度开发者中心控制台

    该平台通过百度账号登录,如未有百度账号,可以先注册百度账号。

  2. 通过百度开发者中心获得开发者权限,注册开发者

  3. 创建工程,获得API KeySecret Key,注册回调URL,该URL用于完成账号授权后的跳转

    所创建工程与百度移动统计中的应用完全独立,API Key 与Secret Key仅用于后续验证身份使用

  4. 百度账号登录
    已经申请了百度开发者权限的用户,所注册和设置的信息与API调用紧密相关,包括API KeySecret Key,回调 URI。用户通过如下 URL 进入百度账号登录页,登录完成后将跳转至用户已设置的回调 URL:

    http://openapi.baidu.com/oauth/2.0/authorize?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&scope=basic&display=popup

    其中参数与所设置信息对应关系如下:

    设置信息       对应参数
    API Key      {CLIENT_ID}
    Secret Key   {CLIENT_SECRET}
    回调URI       {REDIRECT_URI}
  5. 通过身份验证获取ACCESS_TOKEN
    用户同意授权后,页面将跳转至REDIRECT_URI/?code={CODE},获取{CODE}值后可将其加入以下URL换取ACCESS_TOKEN

    http://openapi.baidu.com/oauth/2.0/token?grant_type=authorization_code&code={CODE}&client_id={CLIENT_ID}&client_secret={CLIENT_SECRET}&redirect_uri={REDIRECT_URI}

    返回值:

    {"expires_in": 2592000,"refresh_token":"2.385d55f8615fdfd9edb7c4b5ebdc3e39.604800.1293440400-2346678-124328","access_token":"1.a6b7dbd428f731035f771b8d15063f61.86400.1292922000-2346678-124328","session_secret":"ANXxSNjwQDugf8615OnqeikRMu2bKaXCdlLxn","session_key":" 248APxvxjCZ0VEC43EYrvxqaK4oZExMB","scope":"basic"}
  6. 调用百度统计API
    获取的ACCESS_TOKEN是所调用API的用户级参数,结合各API的应用级参数即可正常调用API获取数据,例子如下所示:

    https://openapi.baidu.com/rest/2.0/tongji/config/getSiteList?access_token=1.a6b7dbd428f731035f771b8d15063f61.86400.1292922000-2346678-124328
  7. 更新ACCESS_TOKEN
    从上述步骤得到的数据中包含ACCESS_TOKEN和 REFRESH_TOKEN两个值,其中ACCESS_TOKEN的有效期为一个月,REFRESH_TOKEN的有效期为十年。REFRESH_TOKEN的作用就是刷新获取新的 ACCESS_TOKENREFRESH_TOKEN,如此反复操作来实现ACCESS_TOKEN有效期永久的机制。
    一旦ACCESS_TOKEN过期,可根据以下请求更换新的 ACCESS_TOKENREFRESH_TOKEN

    http://openapi.baidu.com/oauth/2.0/token?grant_type=refresh_token&refresh_token={REFRESH_TOKEN}&client_id={CLIENT_ID}&client_secret={CLIENT_SECRET}

    返回值如下:

    {"expires_in": 2592000,"refresh_token":"2.385d55f8615fdfd9edb7c4b5ebdc3e39.604800.1293440400-2346678-124328","access_token":"1.a6b7dbd428f731035f771b8d15063f61.86400.1292922000-2346678-124328","session_secret":"ANXxSNjwQDugf8615OnqeikRMu2bKaXCdlLxn","session_key":" 248APxvxjCZ0VEC43EYrvxqaK4oZExMB","scope":"basic"}