飞书组织架构同步(部门和用户) Java-API 的使用

本文详细介绍了如何使用飞书Java SDK进行组织架构(部门和用户)的同步,包括导入Maven依赖、创建、更新和删除部门及用户的操作步骤,并提供了同步顺序和API使用总结。
摘要由CSDN通过智能技术生成

飞书组织架构同步(部门和用户) Java-API使用

概述

1.飞书JavaSDK

飞书开放接口JavaSDK是飞书官方开发的一套封装了飞书开放平台请求的Java借口,便于企业应用整合到飞书平台。
具体可参考飞书官方开源仓库(可以拉取源码,查看官方demo):

https://github.com/larksuite/oapi-sdk-java
	建议直接查看对应Service源码,官方demo过于简单(小声吐槽)。

飞书官方demo
本次实现主要针对飞书平台的基础通讯录功能(ContantService)的使用

1.准备工作

1.1 导入maven依赖

这里使用的是1.0.17-rc2版本,自己开发可以选用更新的版本。

     <dependency>
            <groupId>com.larksuite.oapi</groupId>
            <artifactId>larksuite-oapi</artifactId>
            <version>1.0.17-rc2</version>
        </dependency>

1.2 功能概述

  1. 需要实现的功能: 将本地的部门和人员同步至飞书开放平台
  2. 主要涉及的API:通讯录功能 即 ContactService
  3. Constants.CUSTOM_DEPT_ID_TYPE = “department_id” 含义为:设置飞书部门id为自定义id(默认为飞书自动生成的open_id)
  4. Constants.CUSTOM_USER_ID_TYPE = “user_id” 含义为:设置飞书用户id为自定义id(默认飞书自动生成的open_id)

1.3 解决思路

1.本地建立两张飞书信息表(feishu_user和feishu_dept)
2.对线上飞书平台的操作返回成功(response.getCode == 0)后,将信息都存入本地飞书表
3.比对飞书信息表和本地架构信息表,查找出需要 增、删、改 的部门和用户
4.批量操作同步数据

1.4 设置ContactService

在创建ContactService时,SDK会自动进行access_token的封装,实现开箱即用。
只要传入app_id和app_secret即可获取通讯录对应的权限。

@Configuration
public class FeishuConfig {
   
	//app_id和app_secret在飞书平台的开发者后台-企业自建应用-凭证与基础信息可找到
    private static final AppSettings appSettings = Config
    .createInternalAppSettings(Constants.APP_ID,Constants.APP_SECRET,null,null);
    //要使用时直接使用@Resource注解即可自动注入
    @Bean(name = "contactService")
    public ContactService getContactService(){
   
        final Config config = new Config(Domain.FeiShu, appSettings,new DefaultStore());
        return new ContactService(config);
    }

}

2. 部门对接

2.1 部门的创建

注意事项: 必须先创建父部门(本地oa部门一般都有部门层级字段,按层级排序即可),然后才能创建子部门

		Department department = new Department();//Department为API中封装好的实体类
		//对department的必要参数进行设置
		//略,具体请查询官方API文档(不可设置leaderUserId,因为leader可能没有创建)
		//顶级部门的parentDepartmentId为“0”
        Response<DepartmentCreateResult> response = contactService.getDepartments()
                .create(department)
                .setDepartmentIdType(Constants.CUSTOM_DEPT_ID_TYPE)//使用自己设置的department_id
                .setUserIdType(Constants.CUSTOM_USER_ID_TYPE)//使用自己设置的user_id
                .execute();
        if(response.getCode() == 0){
   
            //如果创建成功,将飞书部门信息录入本地
            maaper.insert();//略
            System.out.
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值