前言

很多企业项目逐渐和企业微信连通,需求千奇百怪,下面详细介绍一下Java语言实现企业微信自建应用发送消息的方法


提示:以下是本篇文章正文内容,下面案例可供参考

一、创建自建应用

首先需要在企业微信后台创建自建应用,具体步骤如下:

1. 登录企业微信后台,在“应用管理”中点击“创建应用”

2. 填写应用名称、选择应用图标等基本信息

3. 在“权限管理”中设置应用所需的权限

4. 在“可见范围”中设置应用可见范围,即哪些部门或成员可以访问该应用

5. 完成后保存应用,得到应用的“CorpID”和“Secret”,这两个很重要,记录起来

二、安装企业微信SDK

1.在pom.xml中增加以下依赖:

企业微信提供了Java版本的SDK,可以通过Maven仓库进行导入。具体步骤如下:

在pom.xml中增加以下依赖:

<dependency> 
        <groupId>com.github.sd4324530</groupId> 
        <artifactId>wechat-java-sdk</artifactId>
         <version>1.5.11</version> 
</dependency> 

2.在代码中导入企业微信SDK包:

代码如下(示例):

import com.github.sd4324530.fastweixin.api.EnterpriseAccountAPI;
import com.github.sd4324530.fastweixin.api.config.ApiConfig;
import com.github.sd4324530.fastweixin.api.entity.Article;
import com.github.sd4324530.fastweixin.api.entity.File;
import com.github.sd4324530.fastweixin.api.entity.Image;
import com.github.sd4324530.fastweixin.api.enums.MaterialTypeEnum;
import com.github.sd4324530.fastweixin.api.enums.MessageTypeEnum;
import com.github.sd4324530.fastweixin.api.enums.TicketTypeEnum;
import com.github.sd4324530.fastweixin.api.response.BaseResponse;
import com.github.sd4324530.fastweixin.api.response.GetTicketResponse;
import com.github.sd4324530.fastweixin.api.response.GetTokenResponse;
import com.github.sd4324530.fastweixin.api.response.UploadMaterialResponse;
import com.github.sd4324530.fastweixin.api.response.UploadMediaResponse;
import com.github.sd4324530.fastweixin.company.api.QiYeApiConfig;
import com.github.sd4324530.fastweixin.company.api.config.QiYeApiConfigChangeNotice;
import com.github.sd4324530.fastweixin.company.api.entity.QYFile;
import com.github.sd4324530.fastweixin.company.api.entity.QYUser;
import com.github.sd4324530.fastweixin.company.api.enums.QYMsgType;

xml引入后,下面代码alt+enter直接开导就行了

三、获取access_token,最重要的一步

企业微信调用接口需要access_token,可以通过以下方法获取:

1. 构造ApiConfig对象

ApiConfig config = new QiYeApiConfig(CORP_ID, SECRET);

CORP_ID和SECRET是在创建自建应用时获取的

2. 调用获取token的方法:

GetTokenResponse response = EnterpriseAccountAPI.getInstance(config).getToken();
String accessToken = response.getAccessToken();

四、发送消息

企业微信支持四种消息类型:文本、图片、文件、图文。文本消息、图片消息、文件消息可以直接发送,图文消息需要先上传素材再发送

1. 发送文本消息

BaseResponse response = EnterpriseAccountAPI.getInstance(config).sendMessage(TEXT_MSG, MessageTypeEnum.TEXT, USER_ID, null);

TEXT_MSG是要发送的文本消息,USER_ID是接收消息的用户ID,用户ID通过通讯录获取

2. 发送图片消息

File file = new File("图片文件流", "图片名称");
UploadMediaResponse uploadResponse = EnterpriseAccountAPI.getInstance(config).uploadMedia(file, MessageTypeEnum.IMAGE);
BaseResponse sendResponse = EnterpriseAccountAPI.getInstance(config).sendMessage(uploadResponse.getMediaId(), MessageTypeEnum.IMAGE, USER_ID, null);

"图片文件流"是要发送的图片文件流,"图片名称"是要发送的图片名称,USER_ID是接收消息的用户ID

3. 发送文件消息

QYFile file = new QYFile("文件名称", "文件描述", "文件类型", "文件路径");
File uploadResponse = EnterpriseAccountAPI.getInstance(config).uploadTempMaterial(MaterialTypeEnum.FILE, file);
BaseResponse sendResponse = EnterpriseAccountAPI.getInstance(config).sendMessage(uploadResponse.getMediaId(), MessageTypeEnum.FILE, USER_ID, null);

"文件名称"是要发送的文件名称,"文件描述"是要发送的文件描述,"文件类型"是文件的类型(例如doc、zip等),"文件路径"是文件的本地路径,USER_ID是接收消息的用户ID

4. 发送图文消息

Article article = new Article("图文标题", "图文描述", "图文URL", "缩略图URL");
UploadMaterialResponse uploadMaterialResponse = EnterpriseAccountAPI.getInstance(config).uploadTempMaterial(MaterialTypeEnum.THUMB, content.getThumb());
String mediaId = uploadMaterialResponse.getMediaId();
article.setThumbMediaId(mediaId);
BaseResponse sendResponse = EnterpriseAccountAPI.getInstance(config).sendNews(USER_ID, article);

"图文标题"是要发送的图文标题,"图文描述"是要发送的图文描述,"图文URL"是要发送的图文URL,"缩略图URL"是发送的图文缩略图的URL,USER_ID是接收图文的用户ID


 

总结

Java语言实现企业微信自建应用发送消息的基础方法就介绍完了,可优化的地方很多,可以把“CorpID”和“Secret”写在配置文件中,写一个工具类获取access_token,因为每天获取access_token的次数有限,7200秒过期,所以要设置定时获取并存储,发送消息也可以封装成方法函数,在使用的时候调用更加灵活。有更多想法评论区讨论或者私信,后面有时间会更新AccessTokenUtil的创建和发送消息的工具类

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐