admin管理员组

文章数量:1582962

最近在Fedora34上跑官方的百度网盘老是工作不正常,看到百度网盘开放有API,于是自己写了一个基于java的百度客户端: https://github/Li-Xiang/jbaidunetdisk/releases/

程序支持字符用户交互界面,也支持命令行方式执行,可以方便通过脚本或后台方式执行。用户交互执行效果如下:

程序开发说明:
jbaidunetdisk调用的是百度开放平台提供的接口,是通过Apache Http Client库进行的调用。

要使用百度网盘的开放平台,首先需要申请接入(申请一个app),申请过程非常简单,打开https://pan.baidu/union/,点击右上角的"申请接入"按钮即可。接入类型选择"个人"。
在官方的"技术文档" -> “开发者须知” ->“接入流程” 有详细说明: https://pan.baidu/union/doc/0ksg0sbig

百度开放平台的授权方式采用的是OAuth2.0(开放授权), 访问授权是跟app关联的,首先根据AppKey,请求一个百度授权页面。请求格式是固定的,只需要client_id填入你的AppKey信息即可。
http://openapi.baidu/oauth/2.0/authorize?response_type=code&client_id=your_app_key&redirect_uri=oob&scope=basic,netdisk

浏览器打开授权URL,用户登录后确认后会获得授权码:

根据授权码就可以换取access_token和refresh_token:

{
  "expires_in": 2592000,
  "refresh_token": "122.128d42206face25fdb7f...L-ww.mqq94w",
  "access_token": "121.827379bdccf1fb019c36...-OCo8.cgd4yw",
  "session_secret": "",
  "session_key": "",
  "scope": "basic netdisk"
}

access_token的有效期是2592000秒,也就是30天,30天内你可以直接通过获取的access_token访问百度云盘,access_token过期之后,也不需要重新请求授权,只需要使用refresh_token刷新access_token,access_token又可以接续使用了,refresh_token有效期是10年,也就是获取授权后,10年内都不需要重新获取授权。剩下的就是通过Http Get/Post调用百度开放平台的接口。

本文标签: 客户端版本百度网Java