由于这几天项目要对接企业微信会话内容存档相关接口,把这几天遇到的问题总结一下。
简单来说就是企业微信聊天内容的数据同步,此篇主要记录对接sdk的问题。
首先要明确的是,会话存档的相关接口使用的是企业微信已经封装提供好的sdk包,并不是对接http接口。
那么sdk包这里要注意的内容主要有两点(官方提供的sdk包中有demo,可以先简单看一下跑跑试试):
1.企业微信提供的sdk目前只有windows和linux,目前还不支持mac,所以在mac开发调试不是很方便。
2.初始化sdk包所在的位置。so应该放在什么位置?从官方的建议来看:
Q:so放置在什么地方?
A:建议将so放置在系统路径:LD_LIBRARY_PATH指定的路径内,或者将so所在的目录加入到LD_LIBRARY_PATH的路径范围内。
windows下开发使用的是dll包,linux下放置的是so包,名称是有所不同的。
windows放置的目录位置:C:\Windows\System32\WeWorkFinanceSdk.dll
linux放置的目录位置:/usr/lib/libWeWorkFinanceSdk_Java.so
在服务器上放置的位置可以默认放在/usr/lib目录下,但是为了便于管理,有时候需自定义目录位置,贴一下初始化加载sdk的代码
1.yml中配置自定义加载的路径
2.在官方给的Finance类中,改一下静态代码块的内容,
static {
System.out.println("企业微信类库加载路径:"+SyncSessionUtil.SESSION_LIB_URL);
System.load(SyncSessionUtil.SESSION_LIB_URL);
//System.load("C:\\Windows\\System32\\WeWorkFinanceSdk.dll");
//System.loadLibrary("WeWorkFinanceSdk_Java");
}
3.初始化SESSION_LIB_URL路径,由于Finance中是在static中初始化sdk包的,所以我们这里要引用static常量,要把yml中对应值set到常量中去
@Data
@Component
public class SyncSessionUtil {
/**
* 企业微信dll,so类库加载路径
* dll:window本地测试路径
* so:linux服务器调用路径
*/
public static String SESSION_LIB_URL;
@Value("${session.lib.url}")
public void setSessionLibUrl(String url){
SESSION_LIB_URL = url;
}
/**
* 解析会话存档秘钥
*/
@Value("${session.privateKey}")
private String privateKey;
}
最后在跑一下demo,初始化成功