MCPcopy Index your code
hub / github.com/NotFound403/wecom-sdk

github.com/NotFound403/wecom-sdk @1.3.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.3.4 ↗ · + Follow
5,534 symbols 11,383 edges 1,857 files 4,651 documented · 84%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<a target="_blank" href="https://mvnrepository.com/artifact/cn.felord/wecom-sdk">
    <img src="https://github.com/NotFound403/wecom-sdk/raw/1.3.4/logo.svg" height="50%" width="50%" alt="wecom-sdk"/>
</a>






<a target="_blank" href="https://github.com/NotFound403/wecom-sdk/blob/release/LICENSE">
    <img alt="" src="https://img.shields.io/github/license/NotFound403/wecom-sdk"/>
</a>
<a target="_blank" href="https://felord.cn">
    <img alt="" src="https://img.shields.io/badge/java-8+-red"/>
</a>   
<a target="_blank" href="https://github.com/square/retrofit">
    <img alt="" src="https://img.shields.io/badge/retrofit-2-brightgreen"/>
</a>   
<a target="_blank" href="https://mvnrepository.com/artifact/cn.felord/wecom-sdk">
    <img alt="" src="https://img.shields.io/maven-central/v/cn.felord/wecom-sdk.svg?style=flat-square"/>
</a>   
<a target="_blank" href="https://github.com/NotFound403/wecom-sdk">
    <img alt="" src="https://img.shields.io/github/stars/NotFound403/wecom-sdk?style=social"/>
</a>    
<a target="_blank" href="https://gitee.com/felord/wecom-sdk/stargazers">
    <img alt="" src="https://gitee.com/felord/wecom-sdk/badge/star.svg?theme=white"/>
</a>    
<a target="_blank" href="https://work.weixin.qq.com/kfid/kfc9d9d759f27f087e1">
    <img alt="点击立即微信咨询" src="https://img.shields.io/badge/%E7%82%B9%E5%87%BB-%E5%BE%AE%E4%BF%A1%E5%92%A8%E8%AF%A2-brightgreen"/>
</a>    
<a target="_blank" href="http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=jteebwBcvUDnEIjP6Kef3HfucjoJtk3h&authKey=%2F6P%2FtQ6TOYDO1iRmtCcqNm4dMOXdqWHQ91cuNt9V3XtDy78orcy8cUlpOhwv3yCG&noverify=0&group_code=4390822">
    <img alt="点击加入QQ交流群" src="https://img.shields.io/badge/QQ%E4%BA%A4%E6%B5%81%E7%BE%A4-4390822-ff69b4"/>
</a>

📢如果你感觉这个项目不错,请点击项目右上角的⭐以鼓励作者,谢谢🎉。

须知

  1. 代码完全开源,使用前请认真尝试样例工程
  2. 在尝试步骤1的前提下遇到问题经过一系列努力无法解决,请提issue,或者通过自行扩展代码解决

🏆简介

wecom-sdk是开源的企业微信开放 API 的 Java 实现,是目前最完整的 Java 开源实现。经过近三年的迭代,目前已经实现了通讯录管理、客户管理、微信客服、素材管理、消息推送、企微机器人、身份验证、应用管理、OA 办公、企业支付等企业微信开放接口,开发人员不需要很高的学习成本就能快速优雅地接入企业微信。

🎨企微机器人样例

/**
 * 企微机器人
 *
 * @throws IOException the io exception
 */
@Test
void webHooks()throws IOException{
        // 发 markdown
        WebhookBody markdownBody=WebhookMarkdownBody.from("这里为markdown消息");
        // 发纯文本
        WebhookBody textBody=WebhookTextBody.from("这里为纯文本");
        // 发图文
        WebhookArticle article=new WebhookArticle("这里为标题","这里为图文链接")
                                   .picurl("这里为封面图链接")
                                   .description("这里为摘要信息");
        WebhookBody newsBody=WebhookNewsBody.from(Collections.singletonList(article));
        // 从base64发图片
        String base64="图片base64";
        String md5="图片base64的md5";
        WebhookBody imageBody1=WebhookImageBody.from(base64,md5);
        // 从流发送图片
        String path="C:\\Users\\Administrator\\Desktop\\0.png";
        InputStream inputStream=Files.newInputStream(Paths.get(path));
        WebhookBody imageBody2=WebhookImageBody.from(inputStream);
        WeComResponse weComResponse=WorkWeChatApi.webhookApi().send("机器人key",markdownBody);
        Assertions.assertTrue(weComResponse.isSuccessful());

}

更多示例参见 SpringBootWecomSdkTests.java

🔥特性

  • 支持多个企业微信同时配置作业
  • 集成方便,适用于各种 Java 生态
  • 目前实现企业微信接口200多个,能满足大部分场景的需求
  • 全参数封装,参数高度语义化封装,再也不担心组织参数、解析参数的问题
  • 实现统一回调,所有回调事件可集中异步处理,开发者只需要关心业务逻辑的处理
  • 统一异常处理,企业微信API调用异常统一被WeComException管理
  • 由 SDK 接管 Token 生命周期,开发者无需关心 Token 的管理。

💡目前自建应用可轻松适配,服务商、代开发暂不开源。

✍️技术栈

  • Retrofit2,支持最高版本号2.11.0
  • OkHttp4,支持最高版本号4.12.0
  • Rxjava3,支持最高版本号3.1.8
  • Jackson2,支持最高版本号2.15.2
  • XStream,支持最高版本号1.4.20

🕸️Maven中央仓库坐标

  • 普通版本

<dependency>
    <groupId>cn.felord</groupId>
    <artifactId>wecom-sdk</artifactId>
    <version>1.3.4</version>
</dependency>
  • rxjava 版本

<dependency>
    <groupId>cn.felord</groupId>
    <artifactId>rx-wecom-sdk</artifactId>
    <version>1.3.4</version>
</dependency>
  • 如何查找想要的API?

由于实现的太全了,想要准确找到API,你可以这样:

public interface TagApi {

    /**
     * 创建标签
     *
     * @param request the request
     * @return GenericResponse generic response
     * @throws WeComException the weComException
     */
    @POST("tag/create")
    GenericResponse<String> createTag(@Body Tag request) throws WeComException;
}    

先去企业微信API文档找到你需要的API,比如创建标签 https://qyapi.weixin.qq.com/cgi-bin/tag/create?access_token=ACCESS_TOKEN ,截取 tag/create 全局搜索即可。

  • Okhttp低版本兼容依赖

会报错NoSuchMethod的是因为你项目本身引入了Okhttp,但是版本比较低,导致不兼容的情况,可通过以下依赖引入wecom-sdk

<dependency>
    <groupId>cn.felord</groupId>
    <artifactId>wecom-sdk</artifactId>
    <version>1.3.4</version>
    <exclusions>
        <exclusion>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>logging-interceptor</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.12.0</version>
</dependency>

<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>logging-interceptor</artifactId>
    <version>4.12.0</version>
</dependency>

📚文档

不再提供任何文档,代码即文档

🎉特别鸣谢

<a target="_blank" href="https://www.jetbrains.com/">
    <img src="https://github.com/NotFound403/wecom-sdk/raw/1.3.4/jb_beam.png" height="200" width="200" alt="jetbrains"/>
</a>

Extension points exported contracts — how you extend this code

ContentDataValue (Interface)
@author dax @since 2023/5/27 10:23 [19 implementers]
wecom-objects/src/main/java/cn/felord/domain/approval/ContentDataValue.java
CallbackEventBodyConsumer (Interface)
消费企业微信回调 一个CallbackEvent 对应一个实现 @author dax @since 2024/5/30 11:16 [8 implementers]
samples/spring-boot-sample/src/main/java/cn/felord/wecom/service/callback/CallbackEventBodyConsumer.java
XmlEntity (Interface)
The interface Callback body. @author dax @since 2024/5/31 12:23 [9 implementers]
wecom-common/src/main/java/cn/felord/callback/XmlEntity.java
MessageApi (Interface)
@author dax @since 2023/8/24 [4 implementers]
wemp-sdk/src/main/java/cn/felord/mp/api/MessageApi.java
WecomCipher (Interface)
敏感信息加密解密工具 @author dax @since 2024/8/7 [3 implementers]
wepay-objects/src/main/java/cn/felord/payment/wechat/v3/crypto/WecomCipher.java
WeMpTicketCacheable (Interface)
Ticket 缓存 @author felord.cn [1 implementers]
wemp-objects/src/main/java/cn/felord/mp/WeMpTicketCacheable.java
MarketingBusiFavorApi (Interface)
微信支付商家券 @author dax @since 2024/8/22
wepay-sdk/src/main/java/cn/felord/payment/wechat/v3/api/direct/MarketingBusiFavorApi.java
KfAccountApi (Interface)
客服账号管理 @author dax @since 2021 /7/23 13:52
rx-wecom-sdk/src/main/java/cn/felord/reactive/api/KfAccountApi.java

Core symbols most depended-on inside this repo

stream
called by 208
wecom-objects/src/main/java/cn/felord/domain/corpay/miniapppay/BillRequest.java
create
called by 131
wecom-sdk/src/main/java/cn/felord/api/LivingApi.java
equals
called by 75
wecom-common/src/main/java/cn/felord/domain/MiniprogramSession.java
retrofit
called by 52
rx-wecom-sdk/src/main/java/cn/felord/reactive/api/WorkWeChatApiClient.java
retrofit
called by 52
wecom-sdk/src/main/java/cn/felord/api/WorkWeChatApiClient.java
init
called by 38
wecom-sdk/src/main/java/cn/felord/api/WorkWeChatApiClient.java
build
called by 29
wecom-objects/src/main/java/cn/felord/domain/message/MessageBodyBuilder.java
init
called by 29
rx-wecom-sdk/src/main/java/cn/felord/reactive/api/WorkWeChatApiClient.java

Shape

Method 3,586
Class 1,515
Enum 285
Interface 148

Languages

Java100%

Modules by API surface

wecom-objects/src/main/java/cn/felord/domain/externalcontact/ContactWayBody.java30 symbols
wecom-common/src/main/java/cn/felord/utils/StringUtils.java29 symbols
wecom-sdk/src/main/java/cn/felord/api/WorkWeChatApi.java28 symbols
rx-wecom-sdk/src/main/java/cn/felord/reactive/api/WorkWeChatApi.java28 symbols
wemp-sdk/src/main/java/cn/felord/mp/api/CardApi.java27 symbols
wemp-objects/src/main/java/cn/felord/mp/domain/card/UpdateBaseInfo.java25 symbols
wecom-objects/src/main/java/cn/felord/domain/approval/TmpControlBuilder.java24 symbols
wecom-objects/src/main/java/cn/felord/domain/wedoc/form/SettingFormItem.java21 symbols
wemp-objects/src/main/java/cn/felord/mp/domain/card/UpdateCard.java19 symbols
wepay-sdk/src/main/java/cn/felord/payment/wechat/v3/api/direct/MarketingBusiFavorApi.java18 symbols
wecom-sdk/src/main/java/cn/felord/api/UserApi.java17 symbols
wecom-sdk/src/main/java/cn/felord/api/SmartSheetApi.java17 symbols

For agents

$ claude mcp add wecom-sdk \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page