今天在项目中引入百度统计,我们是打算在我们的页面中引入百度提供的接口,而不仅仅是用百度统计里面的一些js,中途踩到一些坑,做下记录。
1.开通百度统计导出服务
这个导出服务算是高级功能吧,开通完之后百度统计会给你分配一个token,在后面会用到,开通的图如下:
2.通过代码调用百度统计的接口
为避免看此篇文章的同学不看完就动手操作导致翻车,先说结论,直接在postman中测即可,不用登录,不清楚的继续往下看。
在官网页面我首先看到最下面的示例代码和开发文档,把它们下载下来看,发现效果不好,一大坨一大坨的,直接用postman测https://api.baidu.com/json/tongji/v1/ReportService/getSiteList 这个接口,报如下错误:
1 | { |
难道姿势不对,我又回过头来仔细的看百度文档,终于翻到下面这篇文档,我如获至宝,以为可以把问题解决,但就是这篇文档把我一步步带到坑中。
1 | http://tongji.baidu.com/open/api/more?p=tongjiapi_guide.tpl |
它在使用流程中写到,首先要进行身份认证,就是根据账号,密码和token进行身份验证,之后进行站点选择,这让我坚信,我上面操作失败是因为少了一步登录操作,我开始去百度上搜索这个问题,回答着寥寥,大部分都是提问,其中有一两个回答把我引到了github上,网址如下:
1 | https://github.com/nqdy666/BaiduTongjiClient |
一个是gradle项目一个是maven项目,费了老牛鼻子劲把这两个项目捡下来,下载依赖包,跑起来发现依旧不能运行,这就走了好大的弯路,现在又会过头在继续搜在postman中遇到的那个说请求头不可用的问题,发现下面一篇文档:
1 | https://www.cnblogs.com/w1570631036/p/7096966.html?utm_source=debugrun&utm_medium=referral |
请求体代码如下:
1 | { |
如果postman能请求成功,那么我们使用java编写httpclient发送请求肯定也是可以的,我想纠正的就是百度统计的getSiteList和getData这两个接口只要你有用户名,密码,token(siteId在首页点击网站名称进去在浏览器地址栏中问号后面就可以获取到)组织好请求体就可以调用,完全不是某些网友回答的要费很大劲登录后才能调用,使用httpclient怎么调用就不说了,实在不会引入一个hutool工具包,里面有现成的工具类,最后希望大家少走弯路!!
热评话题