前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >企业微信会话存档文件

企业微信会话存档文件

原创
作者头像
用户1215037
修改2021-09-08 17:37:21
1.8K0
修改2021-09-08 17:37:21
举报
文章被收录于专栏:云生活应用云生活应用

企业微信会话存档接口中,如果消息含有文件(图片、文档之类),返回的信息会包含sdkfileid

通过官方提供的sdk,可以将对应文件下载到本地

代码语言:java
复制
long sdk = Finance.NewSdk();
Finance.Init(sdk, "corpid","secret");
	long slice = Finance.NewSlice();
	long ret = Finance.GetChatData(sdk, "消息开始的seq", "每次拉取的条数", "", "", 3, slice);
	String content = Finance.GetContentFromSlice(slice);
	Finance.FreeSlice(slice);
	slice = Finance.NewSlice();
	String de_privatekeyString = RSAEncrypt.decryptByRSA(RSAKEY.getPrivatekeyString(),
								msgjaArray.getJSONObject(i).getString("encrypt_random_key"));
						ret = Finance.DecryptData(sdk, de_privatekeyString,
								msgjaArray.getJSONObject(i).getString("encrypt_chat_msg"), slice);
	String rString = Finance.GetContentFromSlice(slice);
	JSONObject rsJsonObject = JSONObject.fromObject(rString);
	String indexbuf = "";
							while (true) {
								long media_data = Finance.NewMediaData();
								ret = Finance.GetMediaData(sdk, indexbuf,
										rsJsonObject.getJSONObject(typeString).getString("sdkfileid"), "", "", 3, media_data);
								if (ret != 0) {
									logger.error("getmediadata ret " + ret);
									return;
								}
								if (typeString.equals("image")) {
									FileOutputStream outputStream = new FileOutputStream(
											new File("C:\\chat\\" + rsJsonObject.getString("msgid") + ".jpg"), true);
									outputStream.write(Finance.GetData(media_data));
									outputStream.close();
								} else if (typeString.equals("voice")) {
									FileOutputStream outputStream = new FileOutputStream(
											new File("C:\\chat\\" + rsJsonObject.getString("msgid") + ".mp3"), true);
									outputStream.write(Finance.GetData(media_data));
									outputStream.close();
								} else if (typeString.equals("video")) {
									FileOutputStream outputStream = new FileOutputStream(
											new File("C:\\chat\\" + rsJsonObject.getString("msgid") + ".mp4"), true);
									outputStream.write(Finance.GetData(media_data));
									outputStream.close();
								} else if (typeString.equals("emotion")) {
									String houzuhi = ".png";
									if (rsJsonObject.getJSONObject(typeString).getInt("type") == 1) {
										houzuhi = ".gif";
									}
									FileOutputStream outputStream = new FileOutputStream(
											new File("C:\\chat\\" + rsJsonObject.getString("msgid") + houzuhi), true);
									outputStream.write(Finance.GetData(media_data));
									outputStream.close();
								} else if (typeString.equals("file")) {
									FileOutputStream outputStream = new FileOutputStream(
											new File("C:\\chat\\" + rsJsonObject.getString("msgid") + "."
													+ rsJsonObject.getJSONObject(typeString).getString("fileext")),
											true);
									outputStream.write(Finance.GetData(media_data));
									outputStream.close();
								}
								if (Finance.IsMediaDataFinish(media_data) == 1) {
									Finance.FreeMediaData(media_data);
									break;
								} else {
									indexbuf = Finance.GetOutIndexBuf(media_data);
									Finance.FreeMediaData(media_data);
								}
							}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档