# WeComRobotSDK
**Repository Path**: hamm/WeComRobotSDK
## Basic Information
- **Project Name**: WeComRobotSDK
- **Description**: 🔥🔥🔥一个很好用的企业微信机器人开发工具包。
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: main
- **Homepage**: https://hamm.cn
- **GVP Project**: No
## Statistics
- **Stars**: 8
- **Forks**: 3
- **Created**: 2024-06-27
- **Last Updated**: 2025-03-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: 企业微信, 机器人, SDK, 开发工具包
## README
WeCom Robot SDK
一个很好用的 企业微信机器人 开发工具包。 Github | Gitee | Maven
## 一、通过Maven引入
```xml
cn.hamm.wecom
WeComRobotSDK
1.0.4
```
## 二、构建消息包体
请注意,以下为示例代码,仅展示了常用的一些配置方法,可安装依赖后在项目中查看更多。
### 1. 文本类型消息
```java
WeComTextMessage weComTextMessage = new WeComTextMessage();
weComTextMessage.getText().setContent("text");
weComTextMessage.send(ROBOT_KEY);
```
### 2. `Markdown`类型消息
```java
WeComMarkdownMessage weComMarkdownMessage = new WeComMarkdownMessage();
weComMarkdownMessage.getMarkdown().setContent("markdown");
weComMarkdownMessage.send(ROBOT_KEY);
```
### 3. 图片类型消息
```java
WeComImageMessage weComImageMessage = new WeComImageMessage();
String file = "src/test/resources/image.png";
Path path = Paths.get(file);
weComImageMessage.getImage().setPath(path);
weComImageMessage.send(ROBOT_KEY);
```
### 4. 图文类型消息
```java
WeComNewsMessage weComNewsMessage = new WeComNewsMessage();
weComNewsMessage.getNews().addArticle(
new WeComNewsMessage.News.Article()
.setTitle("Hello")
.setDescription("World")
.setPicUrl(IMAGE_URL)
.setUrl(HAMM_CN)
).addArticle(
new WeComNewsMessage.News.Article()
.setTitle("Hello")
.setDescription("World")
.setPicUrl(IMAGE_URL)
.setUrl(HAMM_CN)
);
weComNewsMessage.send(ROBOT_KEY);
```
### 5. 文件类型消息
```java
String file = "src/test/resources/test.pdf";
String mediaId = WeComFile.uploadFile(ROBOT_KEY, file);
WeComFileMessage weComFileMessage = new WeComFileMessage();
weComFileMessage.getFile().setMediaId(mediaId);
weComFileMessage.send(ROBOT_KEY);
```
### 6. 语音消息
```java
String file = "src/test/resources/voice.amr";
String mediaId = WeComFile.uploadVoice(ROBOT_KEY, file);
WeComVoiceMessage weComVoiceMessage = new WeComVoiceMessage();
weComVoiceMessage.getVoice().setMediaId(mediaId);
weComVoiceMessage.send(ROBOT_KEY);
```
### 7. 模板卡片消息
- 7.1 文本通知卡片
```java
// 按需设置
WeComTemplateCardMessage weComTemplateCardMessage = new WeComTemplateCardMessage();
TemplateCard templateCard = new TemplateCard().setCardTypeText();
templateCard.getMainTitle().setTitle("TemplateCard").setDesc("desc");
templateCard.getSource()
.setDesc("desc")
.setDescColor(DescColor.GREEN)
.setIconUrl(IMAGE_URL);
templateCard.getEmphasisContent().setTitle("10000").setDesc("Desc");
templateCard.getCardAction().setUrl(HAMM_CN);
templateCard.addJump(new TemplateCard.Jump().setTitle("Github").setUrl(HAMM_CN));
templateCard.addHorizontalContent(new TemplateCard.HorizontalContent().setKeyName("Key").setValue("Value"));
templateCard.setSubTitleText("subTitleText");
weComTemplateCardMessage.setTemplateCard(templateCard);
weComTemplateCardMessage.send(ROBOT_KEY);
```
- 7.2 图文展示卡片
```java
// 按需设置
WeComTemplateCardMessage weComTemplateCardMessage = new WeComTemplateCardMessage();
TemplateCard templateCard = new TemplateCard().setCardTypeImage();
templateCard.getMainTitle().setTitle("TemplateCard").setDesc("desc");
templateCard.getSource()
.setDesc("desc")
.setDescColor(DescColor.GREEN)
.setIconUrl(IMAGE_URL);
templateCard.getEmphasisContent().setTitle("10000").setDesc("Desc");
templateCard.getCardAction().setUrl(HAMM_CN);
templateCard.addJump(new TemplateCard.Jump().setTitle("Github").setUrl(HAMM_CN));
templateCard.addHorizontalContent(new TemplateCard.HorizontalContent().setKeyName("Key").setValue("Value"));
templateCard.setSubTitleText("subTitleText");
weComTemplateCardMessage.setTemplateCard(templateCard);
weComTemplateCardMessage.send(ROBOT_KEY);
```
### 8. 文件上传
```java
// 上传语音
String file = "src/test/resources/voice.amr";
String mediaId = WeComFile.uploadVoice(ROBOT_KEY, file);
System.out.println(mediaId);
```
```java
// 上传文件
String file = "src/test/resources/test.pdf";
String mediaId = WeComFile.uploadFIle(ROBOT_KEY, file);
System.out.println(mediaId);
```
## 三、意见反馈
欢迎在本仓库的 `Issues` 提出你的问题或者反馈发现的 BUG。 也欢迎加入我们的开发者交流QQ群: 1140258698