From 73fe7817fd9967a7bb08f2f9cfac4e10716c19a4 Mon Sep 17 00:00:00 2001 From: zhl Date: Thu, 6 Apr 2023 10:30:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BC=81=E4=B8=9A=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1svr=E7=9A=84=E6=96=87=E4=BB=B6=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...atWorkService.ts => wechatwork.service.ts} | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) rename src/service/{WechatWorkService.ts => wechatwork.service.ts} (62%) diff --git a/src/service/WechatWorkService.ts b/src/service/wechatwork.service.ts similarity index 62% rename from src/service/WechatWorkService.ts rename to src/service/wechatwork.service.ts index ccb7cb4..3a59875 100644 --- a/src/service/WechatWorkService.ts +++ b/src/service/wechatwork.service.ts @@ -1,5 +1,7 @@ +import axios, { AxiosRequestConfig } from 'axios' import { singleton } from 'decorators/singleton' +const fs = require('fs') const WX_API_HOST = 'https://qyapi.weixin.qq.com' @singleton export class WechatWorkService { @@ -24,10 +26,14 @@ export class WechatWorkService { public async refreshAccessToken() { const url = `${WX_API_HOST}/cgi-bin/gettoken` // use axios get url - let config = { + let config: AxiosRequestConfig = { method: 'get', maxBodyLength: Infinity, url, + params: { + corpid: this.wxCorpId, + corpsecret: this.wxCorpSecret, + }, } let response = await axios.request(config).then(response => { return response.data @@ -40,6 +46,19 @@ export class WechatWorkService { */ public async fetchApprovalDetail(spNo: string) { const url = `${WX_API_HOST}/cgi-bin/oa/getapprovaldetail` + let config: AxiosRequestConfig = { + method: 'post', + url, + params: { + access_token: this.accessToken, + }, + data: { + sp_no: spNo, + }, + } + let response = await axios.request(config).then(response => { + return response.data + }) } /** @@ -49,5 +68,17 @@ export class WechatWorkService { */ public async fetchFile(mediaId: string) { const url = `${WX_API_HOST}/cgi-bin/media/get` + let config: AxiosRequestConfig = { + method: 'get', + url, + responseType: 'stream', + params: { + access_token: this.accessToken, + media_id: mediaId, + }, + } + let response = await axios.request(config).then(response => { + response.data.pipe(fs.createWriteStream('ada_lovelace.jpg')) + }) } }