JAVA----钉钉同步部门接口对比

本文介绍了钉钉API中获取部门信息的两个版本接口的差异。V1接口能够一次性获取指定部门及其所有子部门,而V2接口仅能获取一级子部门,需要循环调用来获取全部子部门。对于需要完整部门结构的业务,V1接口更为便捷;而对于只需要一级部门的情况,V2接口可能更适用。

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

钉钉同步部门接口对比

可以根据业务需求,选择版本接口

V1 可以获取指定部门下所有子部门
public static List<OapiDepartmentListResponse.Department> getAll() {
        try {
            DingTalkClient client = new DefaultDingTalkClient(DingTalkConstant.BASE_URL + "/department/list");
            OapiDepartmentListRequest req = new OapiDepartmentListRequest();
//            req.setId("1");         // 父部门ID, 如果不传,默认部门为根部门,根部门ID为1
            req.setFetchChild(true);  // 是否递归部门的全部子部门
            req.setHttpMethod("GET");
            OapiDepartmentListResponse rsp = client.execute(req, BaseDingTalk.getAccessToken());

            return rsp.getDepartment();

        } catch (Exception e) {
            log.error("[DingTalk] 获取所有部门失败", e);
        }

        return null;
    }
V2 只能获取指定部门下一级子部门, 需要循环获取所有
public static List<OapiV2DepartmentListsubResponse.DeptBaseResponse> getAll2() {

        try {
            DingTalkClient client = new DefaultDingTalkClient(DingTalkConstant.BASE_URL + "/topapi/v2/department/listsub");
            OapiV2DepartmentListsubRequest req = new OapiV2DepartmentListsubRequest();
            req.setDeptId(1L);
            req.setLanguage("zh_CN");
            OapiV2DepartmentListsubResponse rsp = client.execute(req, BaseDingTalk.getAccessToken());

            if (rsp.isSuccess()) {
                return rsp.getResult();
            }

        } catch (Exception e) {
            log.error("[DingTalk] 获取所有部门失败", e);
        }

        return null;
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值