Java手把手教钉钉配置事件订阅

本文指导如何在钉钉后台设置服务器出口IP,并配置AES_KEY和签名TOKEN。通过示例展示了如何解析加密事件并根据不同事件类型进行处理,包括检查URL、用户添加组织等。附带加解密工具下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、登录钉钉后台,在开发管理配置服务器出口IP

在这里插入图片描述

二、在后台事件与回调中刷新aes_key和签名 token

在这里插入图片描述

三、后台代码实现(注意在后台事件与回调下面还有一个请求地址为请求该方法)

@RestController
@RequestMapping("dingding/event")
public class DingDingEvent {

    //钉钉事件订阅aeskey
    private String aeskey = "填写自己应用的";

    //钉钉事件订阅token
    private String token = "填写自己应用的";

    //钉钉appkey
    private String ownerkey = "填写自己应用的";

    @PostMapping
    public Map<String, String> dealData(@RequestParam(value = "msg_signature", required = false) String msg_signature,
                                        @RequestParam(value = "timestamp", required = false) String timeStamp,
                                        @RequestParam(value = "nonce", required = false) String nonce,
                                        @RequestBody(required = false) JSONObject json) throws DingCallbackCrypto.DingTalkEncryptException {
        // 1. 从http请求中获取加解密参数
        String encrypt = json.getString("encrypt");

        // 2. 使用加解密类型
        DingCallbackCrypto callbackCrypto = new DingCallbackCrypto(token, aeskey, ownerkey);
        final String decryptMsg = callbackCrypto.getDecryptMsg(msg_signature, timeStamp, nonce, encrypt);

        // 3. 反序列化回调事件json数据
        JSONObject eventJson = JSON.parseObject(decryptMsg);
        String eventType = eventJson.getString("EventType");

        // 4. 根据EventType分类处理
        if ("check_url".equals(eventType)) {
            // 测试回调url的正确性
        } else if ("user_add_org".equals(eventType)) {
            // 处理通讯录用户增加时间
        } else if ("bpms_task_change".equals(eventType)) {
            // 处理审批实例变更(审批任务开始、结束、转交)
        } else if ("bpms_instance_change".equals(eventType)) {
            // 处理审批实例始末(审批任务开始、结束)
        }
        System.out.println(decryptMsg);

        // 5. 返回success的加密数据
        Map<String, String> successMap = callbackCrypto.getEncryptedMap("success");
        return successMap;
    }
}

四、至此钉钉事件订阅配置完成(加解密工具附上)去下载

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值