钉钉OA审批事件回调遇坑梳理-如何注册多个事件回调

项目场景:

问题:使用钉钉http调用事件回调注册,遇坑
本项目有两套服务。
当 600 服务,在使用钉钉注册回调的接口后,再次注册800回调服务,800 回调会覆盖掉600服务

测试服务600
正式服务800

接口:
https://oapi.dingtalk.com/call_back/register_call_back


问题描述

问题描述:在使用钉钉注册回调的接口时,只能注册一个

APP 中注册回调代码:

	/**
     * 设置钉钉回调地址
     */
    public static void registerCallBack() {
        // 先删除企业已有的回调
        DingTalkClient client = new DefaultDingTalkClient(URLConstant.DELETE_CALLBACK);
        OapiCallBackDeleteCallBackRequest request = new OapiCallBackDeleteCallBackRequest();
        request.setHttpMethod("GET");
        try {
            client.execute(request, AccessToken);
        } catch (Exception e) {
            log.warn(e.toString());
        }
        // 重新为企业注册回调
        client = new DefaultDingTalkClient(URLConstant.REGISTER_CALLBACK);
        OapiCallBackRegisterCallBackRequest registerRequest = new OapiCallBackRegisterCallBackRequest();
        registerRequest.setUrl(DingConstant.CALLBACK_URL_HOST + "/fs/callback");
        registerRequest.setAesKey(DingConstant.ENCODING_AES_KEY);
        registerRequest.setToken(DingConstant.TOKEN);
        //注册的事件类型,详情请参考事件列表。https://ding-doc.dingtalk.com/document/app/event-list#topic-2025399
        registerRequest.setCallBackTag(CallBackType.getList());
        try {
            OapiCallBackRegisterCallBackResponse registerResponse = client.execute(registerRequest, AccessToken);
            if (registerResponse.isSuccess()) {
                log.info("钉钉回调注册成功");
            } else {
                log.error("钉钉审批回调注册失败:{}", registerResponse.getErrmsg());
            }
        } catch (Exception e) {
            log.error("钉钉审批回调注册异常,报错信息:{}", e.toString());
        }

    }

原因分析:

寻找官方解答:一个企业只能注册一个企业事件回调

当使用HTTP回调注册接口方式接收钉钉推送的订阅事件时,是以企业为维度推送的,OWNER_KEY为CorpId

在这里插入图片描述


解决方案:

当然官方也给出了解决方案,那就是使用应用级的事件回调

  1. 登录开发者后台,找到已创建的企业内部应用。
  2. 单击事件与回调,然后单击编辑,配置用于接收请求的HTTP地址。重要 确保该地址公网可以访问。编辑完请求地址,单击保存按钮时,开放平台会向你配置的网址推送一个 application/json 格式的 POST 请求, 用于验证你配置的网址的合法性
  3. 成功配置请求地址后,在事件订阅列表区域,开启要订阅的事件

当使用本文档中的方式接收钉钉推送的订阅事件时,是以应用为维度推送的,OWNER_KEY为应用的AppKey,可在开发者后台的应用详情页面中获取

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值