企业微信-会话内容存档-全流程

RSA2048秘钥对生成

SSL在线工具-在线密钥对生成-在线RSA、DSA、ECDSA公私钥生成-SSLeye官网

1、下载 jdk和so/dll

获取会话内容 - 接口文档 - 企业微信开发者中心

2、Windows 中将ddl放到 C:\Windows\system32 

PS:网上也有一些其他的解决办法可以参考

放的地方不对就可能出现:no WeWorkFinanceSdk in java.library.path

3、Linux中so放到 /usr/lib

libWeWorkFinanceSdk_Java.so 要重命名成libWeWorkFinanceSdk.so

/usr/lib/libWeWorkFinanceSdk.so

以下备用执行【如果不生效再执行】:

查看环境变量:echo $LD_LIBRARY_PATH 先看下 如果有值就设置环境变量的时候追加,避免产生问题

设置环境变量:export LD_LIBRARY_PATH=/usr/lib  +老的环境变量(如果有)
查看环境变量:echo $LD_LIBRARY_PATH

chomd -R 777 
source.bash_profile 这一步的目的是刷新我们系统环境变量的缓存,让前面的步骤生效

4、Finance.java 包必须为com.tencent.wework

只末尾改成如下代码,Windows和linux 都用 WeWorkFinanceSdk

linux:libWeWorkFinanceSdk_Java 和 libWeWorkFinanceSdk都不能用


    static {
        log.info("java.library.path============={}", System.getProperty("java.library.path"));
        if (isWindows()) {
            log.info("java.library.path======windows======={}", System.getProperty("java.library.path"));
            System.loadLibrary("WeWorkFinanceSdk");
        } else {
            log.info("Linux library path ======linux======={} {}", System.getProperty("java.library.path"));
            System.loadLibrary("WeWorkFinanceSdk");
        }
    }

    public static boolean isWindows() {
        String osName = System.getProperties().getProperty("os.name");
        log.info("当前系统为 ============={}", osName);
        return osName.toUpperCase().indexOf("WINDOWS") != -1;
    }

完成以上步骤就可以直接测试了TestController,具体根据业务实现就可以了


public static void main(String[] argsa){
        String corpid = "ww9163475";
        String secret = "q54w3lATZgU";
        String publicKey = "-----BEGIN PUBLIC KEY-----\n" +
                "MIIBIjANBHPhwqaTF4V8FBKUvQapDr\n" +
                "4QIDAQAB\n" +
                "-----END PUBLIC KEY-----";
        String prikey = "-----BEGIN PRIVATE KEY-----\n" +
                "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC62hXkAjy522k5\n" +
                "4p6RqrTaQgyr4UVCbkQwrrTV9abIHZmm/X\n" +
                "hdP6hqJkaxSLfh0AHdKdJY4=\n" +
                "-----END PRIVATE KEY-----";

        long sdk = Finance.NewSdk();
        System.out.println(Finance.Init(sdk, corpid, secret));
        log.info("init=========={}", Finance.Init(sdk, corpid, secret));

        long ret = 0;
        String[] args = new String[6];
        // 1:获取会话内容 2:拉取媒体消息函数 3:解析密文
        args[0] = "1";
        args[1] = "0";
        args[2] = "10";
        args[3] = "";
        args[4] = "";
        args[5] = "500";
        // 1:获取会话内容
        if (args[0].equals("1")) {
            int seq = Integer.parseInt(args[1]);
            int limit = Integer.parseInt(args[2]);
            long slice = Finance.NewSlice();
            ret = Finance.GetChatData(sdk, seq, limit, args[3], args[4], Integer.parseInt(args[5]), slice);
            if (ret != 0) {
                System.out.println("getchatdata ret " + ret);
                return;
            }
            // 获取slice内容
            System.out.println("getchatdata :" + Finance.GetContentFromSlice(slice));
            log.info("聊天记录============= getchatdata :" + Finance.GetContentFromSlice(slice));
            Finance.FreeSlice(slice);
            // 2:拉取媒体消息函数
        } else if (args[0].equals("2")) {

            String indexbuf = "";
            while (true) {
                long media_data = Finance.NewMediaData();
                ret = Finance.GetMediaData(sdk, indexbuf, args[1], args[2], args[3], Integer.parseInt(args[4]),
                        media_data);
                System.out.println("getmediadata ret:" + ret);
                if (ret != 0) {
                    return;
                }
                System.out.printf("getmediadata outindex len:%d, data_len:%d, is_finis:%d\n",
                        Finance.GetIndexLen(media_data), Finance.GetDataLen(media_data),
                        Finance.IsMediaDataFinish(media_data));
                try {
                    FileOutputStream outputStream =
                            new FileOutputStream(new File("/home/qspace/upload/media_data"), true);
                    outputStream.write(Finance.GetData(media_data));
                    outputStream.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }

                if (Finance.IsMediaDataFinish(media_data) == 1) {
                    // need free media_data
                    Finance.FreeMediaData(media_data);
                    break;
                } else {
                    indexbuf = Finance.GetOutIndexBuf(media_data);

                    // need free media_data
                    Finance.FreeMediaData(media_data);
                }
            }
            // 3:解析密文
        } else if (args[0].equals("3")) {
            // notice!
            // // use prikey to decrpyt get args[1] by do it yourself

            long msg = Finance.NewSlice();
            ret = Finance.DecryptData(sdk, args[1], args[2], msg);
            if (ret != 0) {
                System.out.println("getchatdata ret " + ret);
                return;
            }
            System.out.println("decrypt ret:" + ret + " msg:" + Finance.GetContentFromSlice(msg));
            Finance.FreeSlice(msg);
        } else {
            System.out.println("wrong args " + args[0]);
        }
        Finance.DestroySdk(sdk);
    }

docker file:

COPY 自己linux/so/linux/libWeWorkFinanceSdk.so
 /usr/lib/wework/libWeWorkFinanceSdk.so
ENV LD_LIBRARY_PATH=/usr/lib/wework

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一种用于开发Java应用程序的开源框架,它简化了基于Spring框架的应用程序的配置和部署。企业微信是一款为企业提供即时通讯和协同办公的应用,它能轻松满足企业的沟通和协作需求。 为了在Spring Boot应用程序中引入企业微信会话存档SDK,需要执行以下步骤: 1. 下载企业微信会话存档SDK:你可以从企业微信官方网站或其他可信来源下载适用于Java的企业微信会话存档SDK。 2. 引入SDK依赖:将下载的SDK文件导入Spring Boot应用程序的依赖管理系统中。可以使用Maven或Gradle等构建工具来管理依赖,并在配置文件中指定SDK的版本号。 3. 创建企业微信会话存档SDK的配置文件:在Spring Boot的配置文件中,添加企业微信会话存档SDK所需的配置参数,如企业微信的Corpid、Secret和Agentid等。 4. 创建企业微信会话存档SDK的服务类:在Spring Boot应用程序中创建一个服务类,用于调用企业微信会话存档SDK的接口。根据业务需求,可以根据文档提供的接口进行数据的存储、获取等操作。 5. 在应用程序中调用企业微信会话存档服务:在需要使用企业微信会话存档功能的地方,通过注入企业微信会话存档服务的实例,调用相应的方法来实现会话存档的功能。 需要注意的是,引入企业微信会话存档SDK前,要确保企业微信账号已通过认证并开通了相应的权限。 以上是使用Spring Boot引入企业微信会话存档SDK的基本步骤,根据具体的需求,可能还需要对业务逻辑进行进一步的处理和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值