企业微信组件
一、简介
1.1 概述
企业微信服务支持
1.2 组件坐标
<dependency>
<groupId>org.hzero.starter</groupId>
<artifactId>hzero-starter-integrate-wechat-enterprise</artifactId>
</dependency>
二、使用说明
提供了企业微信基础接口、应用消息发送及同步通讯录方法。
2.1 企业微信基础接口
WechatCorpAddressService
提供企业微信基础接口:
/**
* 创建成员
* @param userDTO
* @param accessToken
* @return
*/
DefaultResultDTO createUser(SyncUserDTO userDTO, String accessToken);
/**
* 读取成员
* @param userid
* @param accessToken
* @return
*/
GetUserDTO getUserById(String userid, String accessToken);
/**
* 更新成员
* @param userDTO
* @param accessToken
* @return
*/
DefaultResultDTO updateUser(SyncUserDTO userDTO, String accessToken);
/**
* 删除成员
* @param userid
* @param accessToken
* @return
*/
DefaultResultDTO deleteUserById(String userid, String accessToken);
/**
* 批量删除成员
* @param userids
* @param accessToken
* @return
*/
DefaultResultDTO batchDeleteUser(List<String> userids, String accessToken);
/**
* 获取部门成员
* @param deptid 企业微信部门id
* @param accessToken
* @return
*/
DeptUserDTO getUsersByDeptId(Long deptid, String accessToken,int fetch_child);
/**
* 获取部门成员详情
* @param accessToken
* @param department_id
* @param fetch_child
* @return
*/
GetUserInfoByDeptIdResultDTO getUserInfoByDeptId( String accessToken, Long department_id, int fetch_child);
/**
* userid转openid
* @param accessToken
* @param userid
* @return
*/
ConvertToOpenidResultDTO convertToOpenid(String accessToken, String userid);
/**
* userid转openid
* @param accessToken
* @param openid
* @return
*/
ConvertToUseridResultDTO convertToUserid(String accessToken, String openid);
/**
* 二次验证
* @param accessToken
* @param userid
* @return
*/
DefaultResultDTO secondAuth(String accessToken, String userid);
/**
* 邀请成员
* @param accessToken
* @param inviteUserDTO
* @return
*/
InviteUserResultDTO inviteUser(String accessToken, InviteUserDTO inviteUserDTO);
/**
* 获取加入企业二维码
* @param accessToken
* @param size_type
* @return
*/
GetJoinQrcodeResultDTO getJoinQrcode(String accessToken, String size_type);
/**
* 根据code获取访问用户身份
* @param accessToken
* @param code
* @return
*/
GetUserInfoByCodeResultDTO getUserInfoByCode(String accessToken, String code );
/**
* 创建部门
* @param deptDTO
* @param accessToken
* @return
*/
CreateDeptResultDTO createDept(SyncDeptDTO deptDTO, String accessToken);
/**
* 更新部门
* @param deptDTO
* @param accessToken
* @return
*/
DefaultResultDTO updateDept(SyncDeptDTO deptDTO, String accessToken);
/**
* 删除部门
* @param deptId
* @param accessToken
* @return
*/
DefaultResultDTO deleteDeptById(Long deptId, String accessToken);
/**
* 获取部门列表
* @param deptId
* @param accessToken
* @return
*/
DeptListDTO getDeptList(Long deptId, String accessToken);
/**
* 创建标签
* @param accessToken
* @param createTagDTO
* @return
*/
CreateTagResultDTO CreateTag(String accessToken, CreateTagDTO createTagDTO);
/**
* 更新标签名字
* @param accessToken
* @param updateTagNameDTO
* @return
*/
DefaultResultDTO updateTagName(String accessToken, UpdateTagNameDTO updateTagNameDTO);
/**
* 删除标签
* @param accessToken
* @param tagid
* @return
*/
DefaultResultDTO deleteTag(String accessToken, String tagid);
/**
* 获取标签成员
* @param accessToken
* @param tagid
* @return
*/
GetTagUserResultDTO getTagUser(String accessToken, String tagid);
/**
* 增加标签成员
* @param accessToken
* @param tagUserDTO
* @return
*/
TagUserResultDTO addTagUser(String accessToken, TagUserDTO tagUserDTO);
/**
* 删除标签成员
* @param accessToken
* @param tagUserDTO
* @return
*/
TagUserResultDTO deleteTagUser(String accessToken, TagUserDTO tagUserDTO);
/**
* 获取标签列表
* @param accessToken
* @return
*/
GetTagUserListResultDTO getTagUserList(String accessToken);
2.2 消息推送
WechatCorpMessageService
提供企业微信消息推送功能接口
/**
* 发送应用消息-文本消息
* @param messageDTO 文本消息
* @param accessToken
* @return
*/
MessageSendResultDTO sendTextMsg(TextMessageDTO messageDTO, String accessToken);
/**
* 发送应用消息-图片消息
* @param messageDTO 图片消息
* @param accessToken
* @return
*/
MessageSendResultDTO sendImageMsg(ImageMessageDTO messageDTO, String accessToken);
/**
* 发送应用消息-语音消息
* @param messageDTO 语音消息
* @param accessToken
* @return
*/
MessageSendResultDTO sendVoiceMsg(VoiceMessageDTO messageDTO, String accessToken);
/**
* 发送应用消息-视频消息
* @param messageDTO 视频消息
* @param accessToken
* @return
*/
MessageSendResultDTO sendVideoMsg(VideoMessageDTO messageDTO, String accessToken);
/**
* 发送应用消息-文件消息
* @param messageDTO 文件消息
* @param accessToken
* @return
*/
MessageSendResultDTO sendFileMsg(FileMessageDTO messageDTO, String accessToken);
/**
* 发送应用消息-文本卡片消息
* @param messageDTO 文本卡片消息
* @param accessToken
* @return
*/
MessageSendResultDTO sendTextCardMsg(TextCardMessageDTO messageDTO, String accessToken);
/**
* 发送应用消息-图文消息
* @param messageDTO 图文消息
* @param accessToken
* @return
*/
MessageSendResultDTO sendNewsMsg(NewsMessageDTO messageDTO, String accessToken);
/**
* 发送应用消息-markdown消息
* @param messageDTO 图片消息
* @param accessToken
* @return
*/
MessageSendResultDTO sendMarkdownMsg(MarkdownMessageDTO messageDTO, String accessToken);
/**
* 发送应用消息-小程序通知消息
* @param messageDTO 小程序通知消息
* @param accessToken
* @return
*/
MessageSendResultDTO sendMiniProgramNoticeMsg(MiniProgramNoticeMessageDTO messageDTO, String accessToken);
/**
* 发送应用消息-任务卡片消息
* @param messageDTO 任务卡片消息
* @param accessToken
* @return
*/
MessageSendResultDTO sendTaskCardMsg(TaskCardMessageDTO messageDTO, String accessToken);
/**
* 创建群聊会话
* @param appChatCreateResultDTO
* @param accessToken
* @return
*/
AppChatCreateResultDTO createAppChat(AppChatCreateResultDTO appChatCreateResultDTO,String accessToken);
/**
* 修改群聊会话
* @param appChatCreateResultDTO
* @param accessToken
* @return
*/
DefaultResultDTO updateAppChat(AppChatUpdateDTO appChatCreateResultDTO,String accessToken);
/**
* 获取群聊会话
* @param chatid 群聊id
* @param accessToken
* @return
*/
AppChatDTO getAppChat(String chatid,String accessToken);
/**
* 应用推送消息
* @param object 根据企业微信自己构造吧 <url>https://open.work.weixin.qq.com/api/doc#90000/90135/90248</url>
* @param accessToken
* @return
*/
DefaultResultDTO sendAppChat(Object object,String accessToken);
2.3 应用管理
WechatCorpAgentManageService
提供企业微信应用管理相关接口
/**
* 获取指定的应用详情
*
* @param agentId 应用id
* @return
*/
AgentDTO getAgentByID(String agentId,String accessToken);
/**
* 获取access_token对应的应用列表
*
* @return
*/
AgentListDTO getAgentList(String accessToken);
/**
* 设置应用
* @param setAgentDTO
* @return
*/
DefaultResultDTO setAgent(SetAgentDTO setAgentDTO,String accessToken);
/**
* 创建菜单
* @param accessToken
* @param agentid
* @param menuDTO
* @return
*/
DefaultResultDTO createMenu(String accessToken, String agentid, MenuDTO menuDTO);
/**
* 获取菜单
* @param accessToken
* @param agentid
* @return
*/
MenuDTO getMenu(String accessToken, String agentid);
/**
* 删除菜单
* @param accessToken
* @param agentid
* @return
*/
DefaultResultDTO deleteMenu(String accessToken, String agentid );
2.4 jsapi_ticket
WechatTicketService
提供企业微信jsapi_ticket相关接口
/**
* 获取电子发票ticket
* 获取应用的jsapi_ticket
*/
GetTicketResultDTO getTicket(String accessToken, String agent_config);
/**
* 获取企业的jsapi_ticket
*/
GetTicketResultDTO getEnterpriseTicket(String accessToken);
/**
* 签名算法
*/
String algorithmSignature(String noncestr, String jsapi_ticket, String timestamp, String url);
2.5 素材管理
WechatMaterialManageService
提供企业微信素材管理相关接口
/**
* 上传临时素材
* @param accessToken
* @param type
* @param name
* @param filename
* @param filelength
* @param contentType
* @return
*/
UploadMediaResultDTO uploadMedia(String accessToken, String type, String name, String filename, String filelength, String contentType);
/**
* 上传图片
* @param accessToken
* @param name
* @param filename
* @param Content_type
* @param contentLength
* @return
*/
UploadImageResultDTO uploadImage(String accessToken, String name, String filename, String Content_type, String contentLength) ;
/**
* 获取临时素材
* @param accessToken
* @param media_id
* @return
*/
ResponseEntity<DefaultResultDTO> getMedia(String accessToken, String media_id);
/**
* 获取高清语音素材
* @param accessToken
* @param media_id
* @return
*/
ResponseEntity<DefaultResultDTO> getHDMedia(String accessToken, String media_id);
2.6 通讯录同步
WechatCorpSyncService
提供hzero通讯录增量同步到企业微信的相关方法
/**
* 获取token且redis缓存
* @param corpId 微信corpId
* @param corpSecret 微信corpSecret
* @return
*/
TokenDTO getTokenWithCache(String corpId, String corpSecret, SecretTypeEnum secretTypeEnum);
/**
* 获取token
* @param corpId 微信corpId
* @param corpSecret 微信corpSecret
* @return
*/
TokenDTO getToken(String corpId, String corpSecret);
/**
* 从第三方 获取企业微信的token
* @param authUrl 第三方地址,参数需自己拼接
* @return
*/
TokenDTO getTokenFromThirdPart(String authUrl);
/**
* 同步企业组织架构
* @param wxSyncDeptDTOList 微信部门
* @param wxSyncUserDTOS 微信员工
* @param fileName 日志文件名
* @param useGeneratedDeptId 是否使用自动生成的部门id
* @param accessToken 授权Token
* @return
*/
SyncCorpResultDTO syncCorp(List<SyncDeptDTO> wxSyncDeptDTOList, List<SyncUserDTO> wxSyncUserDTOS, String fileName,
Boolean useGeneratedDeptId, String accessToken);