阿丹:

这一段接触了项目有比较严谨和复杂的业务需要文件的对接。这会让办公体验很糟糕,于是想到使用百度网盘来将文件存在云端。

进入百度开放平台进行注册

首先要进行注册

创建一个自己的应用

创建成功我们就会获得一个

这些密钥信息和基本信息就是用来连接咱们的这个应用的关键。

进入百度网盘开放平台进行获取授权

阿丹:推荐使用授权码来接受授权

百度网盘开放平台

根据流程来获取。

阿丹提示:

之前在使用另外一个百度官方的api接口文档的时候发现里面在构建一会的请求的时候会出现无法构建的问题。基本上是说咱们的应用没有权限等。如果出现这个错误使用我上面给的连接,使用这个文档按照步骤在去访问就没有问题。

流程图:

阿丹解读:

主要流程就是通过下面构建的请求拿到一个Code,然后使用这个code去换取Access Token来进行文件的上传操作。

发起授权码Code请求

http://openapi.baidu.com/oauth/2.0/authorize?
response_type=code&
client_id=您应用的AppKey&
redirect_uri=您应用的授权回调地址&
scope=basic,netdisk&
device_id=您应用的AppID以上链接示例中参数仅给出了必选参数,其中device_id为硬件应用下的必选参数。
关于应用的相关信息,您可在控制台,点进去您对应的应用,查看应用详情获得。

将这个链接中的参数等进行构建,根据自己的应用来完成

阿丹小贴士:

redirect_uri=您应用的授权回调地址&这个参数是使用成功后要进行回调的地址,如果有需要的话要进行配置,具体配置在下面点击进入可以查看文档。授权回调地址   ​​​​​​http://developer.baidu.com/wiki/index.php?title=docs/oauth/redirect

如果不需要构建这个地址的时候就使用官方默认的参数即可“oob”,使用oob

redirect_uri=oob&就可以了。

换取AccessToken凭证

GET https://openapi.baidu.com/oauth/2.0/token?
grant_type=authorization_code&
code=用户授权码 Code 值&
client_id=您应用的AppKey&
client_secret=您应用的SecretKey&
redirect_uri=您应用设置的授权回调地址以上链接示例中参数仅给出了必选参数。
关于应用的相关信息,您可在控制台,点进去您对应的应用,查看应用详情获得。

根据我们获得的信息来构建连接,其实就是使用我们这个刚获取的code来换取一个可以进行使用的Access Token。

我们对我们的连接进行了访问,可拿到返回值。是一个JSON形式的返回值来包装的。里面包含了我需要的token.

使用文档下面的案例就能在代码中进行使用这些功能。

java案例演示


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;public class HttpGetRequestExample {public static void main(String[] args) {try {URL url = new URL("https://openapi.baidu.com/oauth/2.0/token?grant_type=authorization_code&code=d5a53cd0ca7799d033399487b23ec992&client_id=EVaI5x0U6lEmP125G0Su55ROEXZtItdD&client_secret=VPgfmrt8UBM5kgkeUemwRVmr5AjhFuEV&redirect_uri=oob");HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String inputLine;StringBuffer response = new StringBuffer();while ((inputLine = in.readLine()) != null) {response.append(inputLine);}in.close();System.out.println(response.toString());} catch (Exception e) {System.out.println(e);}}
} 

python案例演示


import requestsurl = "https://openapi.baidu.com/oauth/2.0/token?grant_type=authorization_code&code=d5a53cd0ca7799d033399487b23ec992&client_id=EVaI5x0U6lEmP125G0Su55ROEXZtItdD&client_secret=VPgfmrt8UBM5kgkeUemwRVmr5AjhFuEV&redirect_uri=oob"payload = {}
headers = {'User-Agent': 'pan.baidu.com'
}response = requests.request("GET", url, headers=headers, data = payload)print(response.text.encode('utf8'))

响应示例:


{
expires_in: 2592000,
refresh_token: "122.2959fe0da8c91d522099c5dca1b5608f.YDUwKsc1DS89VaP2DogevEN15cD65vXLtZ7bHHe.DbEWAW",
access_token: "121.fd4b4277dba7a65a51cf370d0e83f567.Y74pa1cYlIOT_Vdp2xuWOqeasckh1tWtxT9Ouw5.LPOBOA",
session_secret: "",
session_key: "",
scope: "basic netdisk"
}其中可以拿到access_token,另外注意也可以拿到refresh_token、expires_in等值。

到这里就已经拿到了Access Token,完成了一次授权。

重点参数:

我们可以看到上面有一个返回值refresh_token是因为Access Token是会过期的。

刷新 Access Token

我们可以根据我们上面获得的refresh_token来进行对AccessToken的刷新

官方提供了这个链接,告诉我们可以使用

refresh_token=Refresh Token的值&

来获取刷新的Access Token

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 凭证时,您可在响应信息中拿到。

java示例;


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;public class HttpGetRequestExample {public static void main(String[] args) {try {URL url = new URL("https://openapi.baidu.com/oauth/2.0/token?grant_type=refresh_token&refresh_token=122.2959fe0da8c91d522099c5dca1b5608f.YDUwKsc1DS89VaP2DogevEN15cD65vXLtZ7bHHe.DbEWAW&client_id=EVaI5x0U6lEmP125G0Su55ROEXZtItdD&client_secret=VPgfmrt8UBM5kgkeUemwRVmr5AjhFuEV");HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String inputLine;StringBuffer response = new StringBuffer();while ((inputLine = in.readLine()) != null) {response.append(inputLine);}in.close();System.out.println(response.toString());} catch (Exception e) {System.out.println(e);}}
} 

python示例


import requestsurl = "https://openapi.baidu.com/oauth/2.0/token?grant_type=refresh_token&refresh_token=122.2959fe0da8c91d522099c5dca1b5608f.YDUwKsc1DS89VaP2DogevEN15cD65vXLtZ7bHHe.DbEWAW&client_id=EVaI5x0U6lEmP125G0Su55ROEXZtItdD&client_secret=VPgfmrt8UBM5kgkeUemwRVmr5AjhFuEV"payload = {}
headers = {'User-Agent': 'pan.baidu.com'
}response = requests.request("GET", url, headers=headers, data = payload)print(response.text.encode('utf8'))

响应示例:


{
expires_in: 2592000,
refresh_token: "122.51265f007055bc895cb02c639410a90d.YDLFcE2nee3Cyu-Bsn7SAFVCAfdCkvSm4EnCdkO.Zs_FiQ",
access_token: "121.60bf4c9911cb554aac39a1c701a4dae8.YDjwYds0zFgbM1rifQhjMLwsfb6xYus5tUhNEoA.XNNoOQ",
session_secret: "",
session_key: "",
scope: "basic netdisk"
}

百度开放平台申请认证调用百度api等(百度网盘上传,下载申请)面向百度开发-百度云盘(1)完成申请-获取用户授权码 Code 值,获取access_token和refresh_token更新token相关推荐

  1. java 百度网盘上传_使用pcs api往免费的百度网盘上传下载文件的方法

    百度个人云盘空间大,完全免费,而且提供了pcs api供调用操作文件,在平时的项目里往里面保存一些文件是很实用的. 环境准备: 开通读写网盘的权限及获取access_token:http://blog ...

  2. linux百度网盘上传下载bypy

    linux百度网盘上传下载bypy 安装bypy 链接百度云 上传文件或文件夹 下载文件或文件夹 关闭链接.退出授权 其他操作 安装bypy pip install bypy 链接百度云 bypy i ...

  3. php 百度网盘上传文件大小限制吗,百度云存储,curl_百度云存储如何上传数G超大文件(视频类)和防盗链等一系列问题,百度云存储,curl - phpStudy...

    百度云存储如何上传数G超大文件(视频类)和防盗链等一系列问题 最近在开发一个视频网站,打算用百度开放云平台上的云存储,但视频较大,一般有几个G(高清电影).1G一下的视频管理控制台里能用页面上传,但1 ...

  4. linux下载百度命令行,Linux 命令行使用百度网盘上传下载文件

    BaiduPCS 是C/C++写的一个百度网盘工具,可以在linux终端中使用. 这是通过分析网盘网站得到的直接接口,不需要创建应用. 支持多线程下载和下载时断点续传. 支持快速上传和多线程分片上传. ...

  5. 百度网盘上传慢的解决方法

    百度网盘是现在大部分人都在使用的网盘,可以存储图片.文件.信息等等资源,但是大家不满的主要是说下载速度.上传速度太慢了,有什么办法可以改善吗?下面小编就给大家介绍两个方法. 百度网盘上传速度太慢怎么解 ...

  6. linux环境下命令行bypy、BaiduPCS 从百度网盘上传、下载数据

    1.安装: linux系统中已安装有python环境,安装bypy库和requests库 安装方法如下: pip install requests -i https://pypi.doubanio.c ...

  7. 使用百度网盘上传大文件到云服务器

    因为需要把几个7G大小左右的数据上传至服务器,但无奈使用的是共享服务器,上传速度非常慢.管理员建议可以用奶牛快传(目前收费)中转,百度搜了一下,百度网盘有相同作用,正好有会员,就使用了百度网盘来传,速 ...

  8. linux环境下,模拟百度网盘上传、下载文件

    目录 1.题目 2.运行截图 3.总体设计 4.详细设计 5.源码 5.1服务端 5.2客户端 1.题目 1)模仿百度网盘实现一个文件上传.下载.浏览的终端网盘; 2)能够实现文件和目录的存储; 3) ...

  9. 解决百度网盘上传请求中或上传慢的方法

    百度网盘正常情况下是超快的,不应该是 "上传请求中" 或 几 k 的速度. 原因是因为 DNS 解释问题.尤其是海外用户.例如,使用 DNS 8.8.8.8 PS C:\WINDO ...

最新文章

  1. 【laravel7.x中文文档】Redis
  2. [ linq2db ] 使用LoadWith()对外键进行查询
  3. 刚出道的黑客搞瘫美国!他们一边搞钱一边捐款给慈善组织,还说俄国人不打俄国人...
  4. linux删去分区的文件夹,如何恢复 Linux 分区下误删的文件?
  5. 牛客竞赛语法入门班数组模拟、枚举、贪心习题【未完结】
  6. Ubuntu14.04安装和配置Tomcat8.0.12(转)
  7. python获取网页数据对电脑性能_【Python】网页数据爬取实战
  8. OpenCV-腐蚀cv::erode
  9. HTML仿小米官网登陆
  10. Android内存分析工具
  11. 图片服务器的架构演进
  12. 高等数学(Calculus I)
  13. html表单颜色背景图片大全,css背景颜色、背景图片,以及列表的多种样式
  14. 【火炉炼AI】机器学习050-提取图像的Star特征
  15. 一男的为媳妇写的、帅死了
  16. 计算机开关键是什么符号,按钮开关符号知识大盘点 【图文】
  17. 专业的机器人资讯与太空中的ROS
  18. 你真的了解单点登录(SSO)吗? 单点登录实现方式
  19. 知识点 - 割点与割边
  20. java读取excel2010文件_java的poi技术读取Excel[2003-2007,2010]

热门文章

  1. 数字鸿沟——你身边的成功案例
  2. linux MMC framework(4) - mmc host driver
  3. (4)Fast R-CNN:简化 SPP 层 + 多任务联合训练 它快起来了~
  4. linux 环境变量怎么退出,Linux环境变量简述
  5. 随缘—5201002015
  6. 二值化Thresholding
  7. CentOS7中建立共享文件夹及取消自动挂载
  8. 企业里没有TPM(可信赖平台模块)标准的安全芯片计算机,如何开启BitLocker锁定磁盘,如何备份系统,当系统出现问题又如何恢复,快速恢复又兼顾系统安全
  9. button与input type=button 的区别
  10. 如何在NS2中产生和使用Poisson Traffic