百度统计 API 接入的坑及 access_token 生成工具

陈孙
• 阅读 7858

两种账号模式

  • 「百度商业账号」:面向百度推广、百度网盟、百度联盟、百度统计、百度司南等账号,可以理解为面向企业用户。
  • 「百度账户」:面向百度搜索、百度贴吧、百度云盘、百度知道、百度文库等产品,面向一般个体用户。
  • 两种账户系统不一样,不互通。网上教程与类库,针对的是「百度商业账号」,针对「百度账户」的教程几乎没有。
  • 本文介绍的是「百度账户」的接入方式。
    百度统计 API 接入的坑及 access_token 生成工具

两种账户系统使用的调用凭证不同

  • 「百度商业账号」

    • 调用接口使用的是「token」
    • 「token」在「百度统计-数据导出服务」页面,点击「立即开通」,由系统自动生成。
      百度统计 API 接入的坑及 access_token 生成工具
  • 「百度账户」

    • 在「百度统计-数据导出服务」页没有「立即开通」的按钮。
    • 调用接口使用的是「access_token」,而不是「token」
    • 「access_token」需要经过 oauth/2.0 协议生成。
      百度统计 API 接入的坑及 access_token 生成工具

access_token 生成过程

首次换取 access_token 的过程,需要在浏览器端完成,无法纯服务器端完成

  • 【第零步】

  • 【第一步】

    • 在浏览器中,访问这个链接 http://openapi.baidu.com/oauth/2.0/authorize?response_type=code&client_id=${apiKey}&redirect_uri=${redirect_uri}&scope=basic&display=popup
    • 浏览器将重定向到百度授权的页面,用户进行登录授权
  • 【第二步】

    • 用户登录授权,输入账号密码授权
    • 授权成功后,将重定向到 redirect_uri 中,并在 URL 中携带 code 参数。
    • redirect_uri 地址,需要在「安全设置」中配置
    • 这一步需要在浏览器中完成,无法脱离浏览器,靠纯服务器完成。
      百度统计 API 接入的坑及 access_token 生成工具
  • 【第三步】

    • 通过 code 换取 access_token
    • 访问这个链接http://openapi.baidu.com/oauth/2.0/token?grant_type=authorization_code&code=${code}&client_id=${apiKey}&client_secret=${secretKey}&redirect_uri=${redirect_uri}
    • 返回只是一个包含「access_token」与「refresh_token」的 json
      百度统计 API 接入的坑及 access_token 生成工具
  • 【刷新 access_token 】

    • access_token 的有效期是一个月,refresh_token 是十年。
    • 通过「apiKey」「secretKey」与「refresh_token」可调用接口刷新「access_token」与「refresh_token」。
    • 无需再经由服务器。
  • 【总结】

    • 除去首次获取「access_token」外,后续接口调用,以及「access_token」的刷新,均可在服务器端完成。需要再经由浏览器。
  • 【注意】

    • redirect_uri 与百度统计的网站域名没有关系。只校验是否在「安全设置」中配置过。除此以外,没有限制(内网地址都行)。
    • redirect_uri 只在「第一步」「第三步」中使用,只用于首次换取 access_token,只使用一次。刷新 access_token 不需要用到。

redirect_uri 保存不生效的坑

  • 笔者偶现 redirect_uri 保存不生效,实际生效的仍是之前填的回调地址。
  • 可新开项目即可解决该问题。

access_token 生成器

鉴于只有初次创建 access_token 的过程才会到浏览器,且后续情况 redirect_uri 都是无意义的。故首次获取 access_token 的过程是不可复用,只需一次的。笔者将该步骤封装成工具,供获取 access_token 使用。

使用方式

  • 将工具链接http://blog.luckly-mjw.cn/tool-show/baidu-statistics/index.html填入「安全设置」中。redirect_uri 只用于回调,无域名限制,无安全风险。
    百度统计 API 接入的坑及 access_token 生成工具
  • 填入「API Key」「Secret Key」,仅用于后续将 code 换取为 access_token。只保存在 localStorage,获取成功后清除。不经过接口,不会上传到云端。可查阅源码验证,无安全风险。
  • 点击按钮,即可完成 access_token 获取,将获取后的 「access_token」 与 「refresh_token」保存至服务器。即可永久刷新,正常调用接口。
    百度统计 API 接入的坑及 access_token 生成工具

项目地址

本地部署生成器

  • 若不放心工具的使用,可下载 node 后端脚本,启动服务器完成该过程
  • 【第零步】下载脚本,并填入「API Key」「Secret Key」
  • 【第一步】执行node index.js,启动脚本
  • 【第二步】将本地 URL http://127.0.0.1:10005/填入「安全设置」中
    百度统计 API 接入的坑及 access_token 生成工具
  • 【第三步】在浏览器中方式http://127.0.0.1:10005/getCode,即可获取 access_token
    百度统计 API 接入的坑及 access_token 生成工具
    百度统计 API 接入的坑及 access_token 生成工具

接口调试官方地址

  • access_token 获取成功后,可通过该工具,测试 access_token 的有效性,并验证接口调用结果。

完结撒花,感谢阅读。

百度统计 API 接入的坑及 access_token 生成工具

点赞
收藏
评论区
推荐文章
samzhangjy samzhangjy
4年前
BaiduSpider:一个爬取百度的利器
BaiduSpider是一款基于Python的百度搜索结果爬虫,支持多种搜索结果。这篇文章将从多个方面介绍BaiduSpider。什么是BaiduSpider?BaiduSpider是一款强大但轻量的百度搜索结果提取器,基于BeautifulSoup4和requests。它支持多种搜索结果,包括百度网页搜索,百度图片搜索,百度知道搜索,百度视频搜索,百度资
Stella981 Stella981
3年前
Mac配置Aria2,高速下载百度云
Mac配置Aria2,高速下载百度云百度云登录帐号使用Aria2,帐号会被拉黑名单限速。如果您的下载速度在100200KB/S,很有可能您的百度云账户被限制了,请尝试不登陆百度云帐号导出下载,速度提速显著!注:以下安装在最新的macOS10.13系统下。一、安装Aria2
冴羽 冴羽
3年前
VuePress 博客之 SEO 优化(六)站长工具
前言在中,我们使用VuePress搭建了一个博客,最终的效果查看:。本篇接着讲讲SEO优化会用到的站长平台和工具等。1.百度统计地址:网站流量分析工具,能够告诉用户访客是如何找到并浏览用户的网站,在网站上做了些什么2.百度搜索资源平台地址:在添加站点后,可以看到自己站点在百度搜索结果中的一些表现:百度搜索中心也提供了一些教程如:1.《平
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Aidan075 Aidan075
4年前
百度指数 才是 百度 的良心之作!
↑点击上方“凹凸数据” 关注星标 每天更新,干货不断  大家好,我是朱小五前段时间有消息说百度网盘不限速了,大家纷纷表示百度良心了?其实它的良心项目还是有的,比如我们可视化用的Echarts、做思维导图的百度脑图以及百度指数等。今天我就要“夸一夸”这个百度指数!对了,你想知道最近的股市中“韭菜”有没有进场吗?别退出哈,接着往下看何为百度指
Stella981 Stella981
3年前
Python+Selenium自动化篇
本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子。0.元素定位方法主要有:id定位:find\_element\_by\_id('')name定位:find\_element\_by\_name('')class定位:find\_element\_by\_class\_name(''
Stella981 Stella981
3年前
Gopher大会嘉宾
个人简介李炳毅:百度资深运维工程师,2010年加入百度,目前是百度Golang委员会成员&CodeMaster,工作主要集中在百度网络接入方向,曾负责和参与防攻击系统BDS、应用层防火墙WAF、7层流量代理C语言研发和Go语言重构等网络接入相关工作。大会主题《go在百度BFE的应用》主题
Stella981 Stella981
3年前
PHP+jQuery寥寥几行代码轻松实现百度搜索那样的无刷新PJAX的分页列表和导航链接
!(https://static.oschina.net/uploads/space/2016/1208/171419_U00R_561214.png)PHP寥寥几行代码轻松实现百度搜索那样的分页列表和导航链接,某些语言的拥趸哭晕在厕所.<?php$apparray('db_prefix''
Wesley13 Wesley13
3年前
Java工程师研发面经大合集
百度研发面经整合版软件研发工程师基础研发工程师百度智能云百度核心搜索部!(https://oscimg.oschina.net/oscnet/36c0e7d02b82eea308b754edce463dfa09e.jpg)百度今年的提前批有点奇怪,好像都不走流程,牛客上好几个
Stella981 Stella981
3年前
ALL in 人工智能,百度还是我们知道的那个百度吗?
!(https://oscimg.oschina.net/oscnet/01e452f3d2e447828e0ef6656df562b4.jpg)文 | 草原骑士来源 | 智能相对论(aixdlun)最近一段时间,投资百度公司的各路资本喜上眉梢。短短4个月,股价上涨近50%,百度也一跃成为市值接近千亿级的重量级选手。今天凌晨百度公司公