百度网盘客户端(java)版本

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

程序支持字符用户交互界面,也支持命令行方式执行,可以方便通过脚本或后台方式执行。用户交互执行效果如下:
百度网盘客户端(java)版本_第1张图片

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

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

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

浏览器打开授权URL,用户登录后确认后会获得授权码:
百度网盘客户端(java)版本_第2张图片
根据授权码就可以换取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)