Skip to content

Wecom

底层客户端。各业务模块都继承它。未封装的接口用 request()

ts
import { Wecom } from 'wecom';

const wecom = new Wecom({
  corpId: process.env.CORPID!,
  corpSecret: process.env.TEST_SECRET!,
});

构造

ts
new Wecom(config?: Partial<WecomConfig>)

配置见 配置。自建应用缺少 corpIdcorpSecret 会抛 WecomConfigError。传入 tokenProvider 时用外部换票,不再要求 corpSecret

使用说明

说明
Secret与目标接口匹配的应用 Secret、通讯录同步 Secret 或功能应用 Secret
权限取决于具体接口;request() 不会补齐业务权限
官方获取 access_token

方法

方法说明
getToken()返回当前可用 access_token,必要时刷新
request<T>(options)发送已鉴权请求,返回业务数据 T
setGlobal(config)写入全局默认配置,已 deprecated

request

ts
interface WecomRequestOptions {
  url: string;
  method?: 'GET' | 'POST' | 'PUT' | 'DELETE';
  params?: Record<string, unknown>;
  data?: unknown;
  headers?: Record<string, string>;
  signal?: AbortSignal;
  skipAuth?: boolean;
  timeout?: number;
  responseType?: 'json' | 'arrayBuffer';
}

url 相对 baseURL。默认自动附加 access_token(Suite / Provider / Hardware 会改成对应的 query 名)。data 为对象时发 JSON;FormData 会按 multipart 发送。

ts
const ret = await wecom.request({
  url: '/message/send',
  method: 'POST',
  data: {
    touser: 'userid',
    msgtype: 'text',
    agentid: 1000002,
    text: { content: 'hello' },
  },
});

导出的辅助类型

ts
import type {
  ResolvedWecomConfig,
  TicketStore,
  TokenProvider,
  TokenRecord,
  TokenStore,
  WecomConfig,
  WecomLogger,
  WecomRequestOptions,
} from 'wecom';
import { MemoryTicketStore, MemoryTokenStore } from 'wecom';

基于 MIT 协议发布