赞
踩
最近做了个通知模块 有一些附件需要同步到企业微信中 企业微信的文档不如钉钉api 还需要自己去写调用的实例 下面是我用java来写的一个方法 获取到上传的media_id
企业微信提供的https发送的示例
- /**
- * 企业微信群上传文件url
- */
- public static final String UPLOAD_FILE_URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media";
- /**
- * 发送群消息url
- */
- public static final String SEND_MESSAGE_URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send";
-
-
- /**
- * 上传文件到企业微信群
- *
- * @param filePath 文件路径
- * @param groupKey 企业微信群机器人的webhook地址
- */
- public static String uploadMediaFile(String filePath, String groupKey) {
- String mediaId=null;
- // FileUtils.returnDownloadPath(filePath) 为你的文件路径
- File file = new File(FileUtils.returnDownloadPath(filePath));
- String urlString = UPLOAD_FILE_URL + "?key=" + groupKey + "&type=file";
- // 构建请求对象 FileUtils.getOriginName(filePath)为你的文件名 自行截取操作
- HttpRequest request = HttpRequest.post(urlString).form("file", file, FileUtils.getOriginName(filePath));
- // 发送请求并获取响应
- String result = request.execute().body();
- JSONObject jsonObject = JSON.parseObject(result);
- Integer errCode = Integer.valueOf(jsonObject.get("errcode").toString());
- if (errCode.equals(0)) {
- // 上传成功
- mediaId= (String) jsonObject.get("media_id");
- }
- return mediaId;
- }
-
- /**
- * 推送消息到企业微信群
- *
- * @param mediaId 媒体文件id
- * @param groupKey 企业微信群机器人的webhook地址
- */
- public static void sendMessageToWeChatGroup(String mediaId, String groupKey) {
- if (mediaId==null){
- throw new NullPointerException("mediaId不能为空!");
- }
- String sendUrl = SEND_MESSAGE_URL + "?key=" + groupKey;
- Map<String, Object> mediaMap = new HashMap<>(1);
- mediaMap.put("media_id", mediaId);
- Map<String, Object> msgMap = new HashMap<>(2);
- msgMap.put("msgtype", "file");
- msgMap.put("file", mediaMap);
- cn.hutool.http.HttpUtil.post(sendUrl, JSON.toJSONString(msgMap));
- }
其中uploadMediaFile用于拿到mediaId,sendMessageToWeChatGroup用于发送到指定群
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。