image-20220928211141429

官方文档:https://open.hduhelp.com/docs/develop/

因为官方文档写得有些抽象,鄙人搞懂之后特作此文以记录

PS:全程使用 https

申请票据

首先,作为第三方软件,在助手许可后你是可以调用助手的api的

助手方面会提供给你一对字符串密钥

名称 票据
client_id 用于识别服务提供方的 id
client_secret 用于证明服务方身份的密钥

获取 access_token

这个要一来二去搞两回,有点麻烦

首先,你要构造一个发起请求的 URL ,然后让用户在浏览器中访问

1
https://api.hduhelp.com/oauth/authorize?response_type=code&client_id=[提供的clientID]&redirect_uri=[callback对应的url]&state=[您自己生成的state]

image-20220928213535508

自己替换成实际的字符串就行,不用带括号

  • redirect_Url 指的是在助手那边鉴权成功后跳转的路由,下面以 http://localhost 为例
  • state 是你自己生成的,据说是用来防 CSRF 的,但我好像没看出来是怎么防的

image-20220928214116110

什么老王八蛋哇,@eson

之后就跳转到统一身份认证平台

image-20220928214644235

image-20220928214852626

image-20220928214908696

最后重定向到你的后台 URL ,并且可以看见还附带了 codestate 两个参数

现在你才能去请求 access_token

构造一个 GET 请求,内容如下

1
https://api.hduhelp.com/oauth/token?client_id=[提供的clientID]&client_secret=[提供的client_secret]&grant_type=authorization_code&code=[callback中获取的code]&state=[callback中获取的state]

image-20220928215345432

是不是很麻烦?麻烦就对了,再拿这个去申请 access_token

image-20220928221652252

现在就拿到手了

调用 API

拿到 access_token 之后,我们就可以去调用 API 了,比如这个校园时间的

只需要在 HTTP 上添加 Authorization 头来进行鉴权,值为 token [access_token]

image-20220928222257749