百度统计数据导出服务踩的坑
今天在项目中引入百度统计,我们是打算在我们的页面中引入百度提供的接口,而不仅仅是用百度统计里面的一些js,中途踩到一些坑,做下记录。
1. 开通百度统计导出服务
这个导出服务算是高级功能吧,开通完之后百度统计会给你分配一个token,在后面会用到,开通的图如下:
2.通过代码调用百度统计的接口
为避免看此篇文章的同学不看完就动手操作导致翻车,先说结论,直接在postman中测即可,不用登录,不清楚的继续往下看。
在官网页面我首先看到最下面的示例代码和开发文档,把它们下载下来看,发现效果不好,一大坨一大坨的,直接用postman测https://api.baidu.com/json/tongji/v1/ReportService/getSiteList 这个接口,报如下错误:
{
"header": {
"desc": "system failure",
"failures": [
{
"code": 8603,
"message": "The request header you provided is invalid. sn:289933044807937",
"position": "_sys"
}
],
"status": 3
}
}
难道姿势不对,我又回过头来仔细的看百度文档,终于翻到下面这篇文档,我如获至宝,以为可以把问题解决,但就是这篇文档把我一步步带到坑中。
http://tongji.baidu.com/open/api/more?p=tongjiapi_guide.tpl
它在使用流程中写到,首先要进行身份认证,就是根据账号,密码和token进行身份验证,之后进行站点选择,这让我坚信,我上面操作失败是因为少了一步登录操作,我开始去百度上搜索这个问题,回答着寥寥,大部分都是提问,其中有一两个回答把我引到了github上,网址如下:
https://github.com/nqdy666/BaiduTongjiClient
和https://github.com/justlive1/baiduTongJi
一个是gradle项目一个是maven项目,费了老牛鼻子劲把这两个项目捡下来,下载依赖包,跑起来发现依旧不能运行,这就走了好大的弯路,现在又会过头在继续搜在postman中遇到的那个说请求头不可用的问题,发现下面一篇文档:
https://www.cnblogs.com/w1570631036/p/7096966.html?utm_source=debugrun&utm_medium=referral
然后我把请求体进行了修改,直接就请求成功了,详见如下截图,
请求体代码如下:
{
"header": {
"account_type": 1,
"password": "你的密码",
"token": "你的token",
"username": "你的用户名"
},
"body": {
"siteId":"你的siteId",
"method": "visit/district/a",
"start_date": "20170818",
"end_date": "20171118",
"metrics": "pv_count,visitor_count,avg_visit_time"
}
}
如果postman能请求成功,那么我们使用java编写httpclient发送请求肯定也是可以的,我想纠正的就是百度统计的getSiteList和getData这两个接口只要你有用户名,密码,token(siteId在首页点击网站名称进去在浏览器地址栏中问号后面就可以获取到)组织好请求体就可以调用,完全不是某些网友回答的要费很大劲登录后才能调用,使用httpclient怎么调用就不说了,实在不会引入一个hutool工具包,里面有现成的工具类,最后希望大家少走弯路!!
上一篇: 百度统计API的使用
下一篇: CorelDRAW中的快捷键设置方法介绍
推荐阅读
-
百度统计数据导出服务踩的坑
-
搭建SonarQube服务踩过的坑
-
[Webpack 踩坑] 使用 Webpack 打包 Web 端和 Node 服务端通用的依赖库
-
【Jenkins】百度云服务器(Centos6.5)安装Jenkins遇到的坑
-
Linux下两种方式安装apache服务器踩过的坑
-
利用Qt/C++在腾讯云/阿里云服务器搭建TCP/IP协议实现网络通信以及Qt在linux下的安装和程序打包踩坑(详解)
-
Android 百度地图导航没有语音问题踩坑 重点是AndroidManifest.xml的配置问题
-
【记录踩坑】配置本地访问远程Linux系统服务器的jupyter notebook
-
配置远程服务器的ssh免密登录 + ssh别名设置(详细完备的踩坑指南)
-
[Webpack 踩坑] 使用 Webpack 打包 Web 端和 Node 服务端通用的依赖库