From bbf0b434f184b36a91801ca277a7fa1002435201 Mon Sep 17 00:00:00 2001 From: zhl Date: Thu, 6 Apr 2023 10:57:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=9C=8D=E5=8A=A1=E7=9A=84access=5Ftoken?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=96=B9=E6=B3=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加获取access_token的方法到WechatWorkService中 - 重构fetchApprovalDetail和fetchFile方法,改用新的getAccessToken方法替代accessToken - 在fetchFile方法中删除不必要的fs.createWriteStream调用 --- src/service/wechatwork.service.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/service/wechatwork.service.ts b/src/service/wechatwork.service.ts index bac2928..0cd7efe 100644 --- a/src/service/wechatwork.service.ts +++ b/src/service/wechatwork.service.ts @@ -18,7 +18,16 @@ export class WechatWorkService { this.wxCorpId = process.env.WX_CORP_ID this.wxCorpSecret = process.env.WX_CORP_SECRET } - + /** + * 获取access_token + * @returns access_token + */ + public async getAccessToken() { + if (!this.accessToken || this.tokenExpire < Date.now()) { + await this.refreshAccessToken() + } + return this.accessToken + } /** * 获取微信企业号的access_token * https://developer.work.weixin.qq.com/resource/devtool @@ -49,11 +58,12 @@ export class WechatWorkService { */ public async fetchApprovalDetail(spNo: string) { const url = `${WX_API_HOST}/cgi-bin/oa/getapprovaldetail` + const access_token = await this.getAccessToken() let config: AxiosRequestConfig = { method: 'post', url, params: { - access_token: this.accessToken, + access_token, }, data: { sp_no: spNo, @@ -71,12 +81,13 @@ export class WechatWorkService { */ public async fetchFile(mediaId: string) { const url = `${WX_API_HOST}/cgi-bin/media/get` + const access_token = await this.getAccessToken() let config: AxiosRequestConfig = { method: 'get', url, responseType: 'stream', params: { - access_token: this.accessToken, + access_token, media_id: mediaId, }, }