授权前准备
官方文档地址:https://pan.baidu.com/union/doc/ol0rsap9s
在授权之前,您需要先完成创建自己的应用。具体流程参见使用入门章节。
主要包括以下流程:
1.进入百度网盘开放平台,点击右上角 “申请接入”。
2.登录您的百度帐号。
3.完成开发者认证,我们提供了两种认证类型供您选择:个人认证、企业认证。
4.前往控制台创建自己的应用,生成AppID、AppKey、SecretKey、SignKey等信息。
目前个人认证下可最多创建 2 个应用,企业认证下可最多创建 10 个应用。
可创建两种类型的应用:硬件应用和软件应用。
5.至此,完成应用的创建。
授权码模式
我使用的是授权码模式:他的大致流程就是先要获得一个code,然后通过code获取到我们最终要使用的access_token。
获取code
将其中的参数替换成你自己的参数,回调地址如果是开发环境可以先传oob
http://openapi.baidu.com/oauth/2.0/authorize?
response_type=code&
client_id=您应用的AppKey&
redirect_uri=您应用的授权回调地址&
scope=basic,netdisk&
device_id=您应用的AppID
如果回调地址传的是oob的话会出现授权页面,需要手动复制code
注意:一个code只能使用一次
获取access_token
通过code即可获取到access_token
接口文档:https://pan.baidu.com/union/doc/al0rwqzzl
code:第一步获取到的值
redirect_uri:如果没有回调地址可以填oob
回调地址还需要在百度网盘管理平台进行配置,并且一个小时之后生效
回调地址就是百度会根据你提供的回调地址来调取你的接口,会传code给你如果你请求的时候带上state也会一并返回给你,所以必须保证你的接口是可以通过公网访问的
GET https://openapi.baidu.com/oauth/2.0/token?
grant_type=authorization_code&
code=用户授权码 Code 值&
client_id=您应用的AppKey&
client_secret=您应用的SecretKey&
redirect_uri=您应用设置的授权回调地址
示例代码:state是自定义参数,传的话他会在回调的时候给你带着回来
public function getAuth($code,$panId)
{
if (empty($code)) {
exit();
}
$config = [
'client_id' => $this->app_key,
'SecretKey' => $this->secret_key,
'redirect_uri' => $this->redirect_url,
'state'=>$panId
];
$url = 'https://openapi.baidu.com/oauth/2.0/token?grant_type=authorization_code&code='.$code.'&client_id=' . $