Skip to content
Bitzsoft.Integrationsbitzsoft.integrations

Reference

企业微信 TeamWork

企业微信协同办公包的 WeComOptions 配置字段、各业务线 Secret 集合、access_token 鉴权、6 个能力接口(含客户联系人)与使用示例。

Last updated

包信息

属性
NuGet 包Bitzsoft.Integrations.TeamWork.WeCom
Provider IDwecom
鉴权方式access_token(各业务线独立 Secret 换取)
能力接口Org、Message、Approval、Sso、Health、Contact(6 个)

配置字段(WeComOptions)

字段类型必填默认值说明
CorpIdstring企业 CorpId
AgentIdlong0应用 AgentId
SecretsWeComSecretsnew()各业务线应用 Secret 集合
BaseUrlstringhttps://qyapi.weixin.qq.com企业微信服务端 API 基地址
OpenBaseUrlstringhttps://open.work.weixin.qq.com开放平台基地址
CallbackTokenstring?回调 Token
CallbackEncodingAesKeystring?回调加解密 EncodingAESKey
HttpClientNamestringTeamWorkWeCom业务 HttpClient 命名
TokenHttpClientNamestringTeamWorkWeComToken令牌刷新专用 HttpClient

WeComSecrets 子表

字段类型说明
Contactsstring通讯录同步 Secret
Messagestring自建应用 Secret
ExternalContactstring客户联系 Secret

配置示例

{
"TeamWork": {
"WeCom": {
"CorpId": "ww1234567890abcdef",
"AgentId": 1000002,
"Secrets": {
"Contacts": "your-contacts-secret",
"Message": "your-app-secret",
"ExternalContact": "your-external-contact-secret"
},
"BaseUrl": "https://qyapi.weixin.qq.com"
}
}
}

DI 注册

// ① 配置节绑定
builder.Services.AddBitzsoftWeComTeamWork(builder.Configuration.GetSection("TeamWork:WeCom"));
// ② 委托配置
builder.Services.AddBitzsoftWeComTeamWork(options =>
{
options.CorpId = "ww1234567890abcdef";
options.AgentId = 1000002;
options.Secrets = new WeComSecrets
{
Contacts = "your-contacts-secret",
Message = "your-app-secret",
ExternalContact = "your-external-contact-secret",
};
});

能力接口方法

企业微信实现了 Org、Message、Approval、Sso、Health 五个接口,外加独有接口:

ITeamWorkContactProvider(企业微信独有)

Task<IReadOnlyList<ExternalContactInfo>> GetExternalContactsAsync(string userId, CancellationToken ct = default);
Task<IReadOnlyList<CustomerGroupInfo>> GetCustomerGroupsAsync(string userId, CancellationToken ct = default);

使用示例

// 客户联系人——企业微信独有
public class ContactService(ITeamWorkContactProvider contact)
{
public async Task<IReadOnlyList<ExternalContactInfo>> GetContactsAsync(string userId)
{
return await contact.GetExternalContactsAsync(userId);
}
}
// 能力探测:企业微信有 Contact,飞书没有
public class CapabilityProbe(ITeamWorkOrgProvider org)
{
public bool HasContactCapability => org is ITeamWorkContactProvider;
}

已知限制

  • 企业微信不实现 ITeamWorkTodoProvider(钉钉/飞书有),不实现日历与文档接口。
  • 各业务线 access_token 相互独立:通讯录用 Contacts Secret,消息用 Message Secret,客户联系用 ExternalContact Secret。

相关

100%

滚轮或按钮缩放 · 放大后拖动画面 · 双击切换 100% / 200%