前言
- 作为网盘的老用户,百度网盘一直是我用来存储资源的不二工具。随着网盘的不断崛起,别的盘陆续也开始犹如雨后。比如阿里云盘,效果很不错,而且空间使用免费,目前也不限速,当然以后就不知道了。这都是题外话。今天主要是想利用一下百度网盘的开发平台。最近建站突然发下空间严重不够。外用图床虽然有很多免费的,但是感觉还是严重不够。随即想自己看下自己花了好多年资金投入的百度网盘是否能够使用。废话不多说了。直接开始吧。
百度网盘开放平台简介
1.功能概述
在开放平台,你可以方便快捷地实现应用、设备与百度网盘的连接互通:数据的上传、网盘文件的管理与下载、场景化的影音与相册服务、开发一个小程序入驻网盘等等能力。
具体的服务类别请参考下表:
| 分类 | 类型 | 描述 |
|---|---|---|
| 基础网盘能力 | 主要为API接口 | 在你的应用、设备中获取用户的网盘信息以及文件内容,实现数据的上传与下载、网盘文件管理等能力。 |
| 多媒体服务 | 主要为API接口 | 在你的应用中快速实现网盘视频的流畅播放体验、图片相册的智能分类与管理等能力,打造个性化的影音放映室。 |
| 智能设备入驻 | 主要为API接口 | 为各硬件设备合作伙伴提供设备的绑定和管理能力。 |
| 智能小程序入驻 | 百度智能小程序 | 将智能小程序入驻在百度网盘,基于百度网盘超大的用户规模和文件数据,快速实现用户增长和商业变现。 |
2.使用简介
- 大概使用流程如下图所示,详参考官网链接
- 开发者需要完成基本流程才能使用开放平台的各种能力以及服务,通用的操作流程如下图所示:

3.接入授权
- 官网描述
- 这里简单说下,接入授权目前有三种授权模式:
- 授权码模式(Authorization Code
- 简化模式(Implicit Grant)
- 设备码模式(Device Code)。
三种模式主要区别如下:
| 授权模式 | 描述 | 使用场景 | 有效期 |
|---|---|---|---|
| 授权码模式 (Authorization Code) | 用户授权后生成授权码 Code,开发者应用通过 Code 换取 Access Token。 | 适用于 有 Server 端 的应用。 | 只能使用一次,过期后支持刷新Access Token。 |
| 简化模式 (Implicit Grant) | 无需通过 Code 换取 Access Token,直接获取 Access Token。 | 适用于 无 Server 端配合 的应用。 | Access Token 有效期较短,不支持刷新 Access Token,过期后用户需重新登录授权。 |
| 设备码模式 (Device Code) | 获取设备码,用户授权后,开发者应用通过设备码换取 Access Token。 | 适用于 弱输入设备 的应用(不支持浏览器或输入受限的设备,如儿童手表)。 | Device Code只能使用一次,Access Token过期后支持刷新 |
- 我这里准备使用的是授权码模式,可以自动刷新,能一直用下去,当然如果使用这个模式需要有个回调地址.就是公网ip或域名,这里具体可以看官网链接 回调相关说明,如果开发过其他开放平台接口的应该知道这点,比如微信公众号小程序之类的的开发,基本上都差不多.不知道也无所谓,就是写个url.有人说了,我没公网,只有内网怎么办?内网可以用nut等内网穿透的工具实现.具体可以自己搜搜.
- 说了这么多到底要干什么呢?其实就是两件事
- 发起授权码 Code 请求,获取用户授权码 Code,具体接口如下
GET http://openapi.baidu.com/oauth/2.0/authorize?
response_type=code&
client_id=您应用的AppKey&
redirect_uri=您应用的授权回调地址&
scope=basic,netdisk&
device_id=您应用的AppID
以上链接示例中参数仅给出了必选参数,其中device_id为硬件应用下的必选参数。
关于应用的相关信息,您可在控制台,点进去您对应的应用,查看应用详情获得。也就是注册的时候,这些入参值基本都是固定的.返回给用户一个授权界面.
- ++换取 Access Token 凭证++ (一切操作都是为了这个),通过上述 1 拿到的用户授权码 Code 换取 Access Token 凭证。具体API接口
GET https://openapi.baidu.com/oauth/2.0/token?
grant_type=authorization_code&
code=用户授权码 Code 值&
client_id=您应用的AppKey&
client_secret=您应用的SecretKey&
redirect_uri=您应用设置的授权回调地址
以上链接示例中参数仅给出了必选参数。
关于应用的相关信息,您可在控制台,点进去您对应的应用,查看应用详情获得。除了那个code是上一步获取到的之外,其他的还是都是固定值
- 响应示例:
{
expires_in: 2592000,
refresh_token: "122.2582432a1cf40bc91ca31c10b5a6c038.Y3l6ETFhyjmS8ABFNRv3cPcJzKO-Pl9M4TCnUpx.LHh1Vw",
access_token: "121.fd4b4277dba7a65a51cf370d0e83f567.Y74pa1cYlIOT_Vdp2xuWOqeasckh1tWtxT9Ouw5.LPOBOA",
session_secret: "",
session_key: "",
scope: "basic netdisk"
}
其中可以拿到access_token,另外注意也可以拿到refresh_token、expires_in等值。
- 至此,恭喜您!您已经拿到了 Access Token,完成了授权。:smile:
- 刷新 Access Token(为了一直使用而使用)
- 授权码模式下,Access Token 只能使用一次,过期后怎么办?网盘API支持刷新 Access Token。那么,您如何刷新 Access Token呢。通过 Refresh Token 刷新,具体依API如下:
GET https://openapi.baidu.com/oauth/2.0/token?
grant_type=refresh_token&
refresh_token=Refresh Token的值&
client_id=您应用的AppKey&
client_secret=您应用的SecretKey
以上链接示例中参数仅给出了必选参数。
关于应用的相关信息,您可在控制台,点进去您对应的应用,查看应用详情获得。
关于 Refresh Token的值,在换取 Access Token 凭证时,您可在响应信息中拿到。
4.愉快的使用API吧
参考官网写代码