作为网盘的老用户,百度网盘一直是我用来存储资源的不二工具。随着网盘的不断崛起,别的盘陆续也开始犹如雨后。比如阿里云盘,效果很不错,而且空间使用免费,目前也不限速,当然以后就不知道了。这都是题外话。今天主要是想利用一下百度网盘的开发平台。最近建站突然发下空间严重不够。外用图床虽然有很多免费的,但是感觉还是严重不够。随即想自己看下自己花了好多年资金投入的百度网盘是否能够使用。废话不多说了。直接开始吧。
百度网盘开放平台简介
想看具体的可以参考官方链接,这里只说下大概
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:
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:
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:
grant_type=refresh_token&
refresh_token=Refresh Token的值&
client_id=您应用的AppKey&
client_secret=您应用的SecretKey
以上链接示例中参数仅给出了必选参数。
关于应用的相关信息,您可在控制台,点进去您对应的应用,查看应用详情获得。
关于 Refresh Token的值,在换取 Access Token 凭证时,您可在响应信息中拿到。
4.愉快的使用API吧
参考官网写代码
- 2992
-