飞书对接结论文档
1.免登
1.创建自建应用获取app_id和app_secret.
2.在飞书配置重定向url
- https://e.xinrenxinshi.com/site/ajax-lark-login
- https://i.xinrenxinshi.com/employee-pc/ajax-lark-loginPC
3.向飞书开放api发起请求获取app_access_token
(请求参数为app_id
和app_secret
)
4.通过请求参数app_id
和redirect_uri
获取授权登陆授权码code
5.上面获取的app_access_token
放在请求头中,请求体为grant_type
和获取到的登陆授权码code
发起请求获取user_access_token
6.请求头中带上user_access_token
请求获取登录用户信息
请求响应体实例
{
"code": 0,
"msg": "success",
"data": {
"name": "zhangsan",
"en_name": "zhangsan",
"avatar_url": "www.larksuite.com/avatar/icon",
"avatar_thumb": "www.larksuite.com/avatar/icon_thumb",
"avatar_middle": "www.larksuite.com/avatar/icon_middle",
"avatar_big": "www.larksuite.com/avatar/icon_big",
"open_id": "ou-caecc734c2e3328a62489fe0648c4b98779515d3",
"union_id": "on-d89jhsdhjsajkda7828enjdj328ydhhw3u43yjhdj",
"email": "zhangsan@larksuite.com",
"enterprise_email": "demo@mail.com",
"user_id": "5d9bdxxx",
"mobile": "+86130002883xx",
"tenant_key": "736588c92lxf175d",
"employee_no": "111222333"
}
}
7.响应体中有mobile
字段,可以结合openapi中的freelogin进行手机号的直接免登或者在根据手机号获取员工详细信息后根据xrxs内部employeeId进行免密登陆
2.待办同步
审批待办,离职待办,绩效待办同步到飞书待办任务
1.获取tenant_acccess_token
2.监听xrxs审批,离职,绩效的待办消息,在监听到对应的消息后,调用飞书开放api创建审批定义,请求头中带上获取到的tenant_acccess_token
(参考飞书创建第三方审批定义接口文档)
另外,审批定义还可以配置审批操作时的回调地址:审批人在待审批列表中进行【同意】【拒绝】操作时,审批中心会调用回调地址通知三方系统
3.如果第二步没有配置回调地址(请求体中未携带),则飞书审批系统无法进行审批,审批需在xrxs系统进行,在审批流转后将生成的审批实例、审批任务、审批抄送数据再同步到飞书审批中心
4.如果第二步配置了回调地址,可以直接在飞书的审批中心进行审批操作,审批中心会回调xrxs系统,我们需要配置接收回调的更新信息,再将新的信息同步回审批中心,形成闭环
5.同步三方审批实例的请求头须带上获取的tenant_acccess_token
(参考飞书同步第三方审批实例接口文档)
3.通知同步
涉及到考勤,工资条,入职,转正,生日,周年提醒类消息 可能有两种发送消息的情况
- 1.给指定的单个员工发送消息
- 2.给所有员工,某个部门员工或者指定的大量员工发送消息
可以监听xrxs的消息,在获取
tenant_access_token
后,可以请求飞书对应的消息接口来进行消息的发送,单个消息和批量消息的参考文档
4.组织架构同步
员工同步
1.先获取xrxs的全量人员数据(包含在职和离职)
2.处理在职
员工,先从飞书中获取该员工是否存在,存在则校验信息是否相同,不相同则调用飞书的修改用户部分信息接口
进行信息变动,相同则无需同步,不存在则调用飞书的创建用户
接口进行人员的新增
3.处理离职员工,先从飞书中获取该员工是否存在,不存在则无需操作,存在则调用飞书的删除用户
接口进行飞书通讯录中该人员的离职,实现和xrxs人员的同步
在查找飞书通讯录中的人员信息时,需要先与xrxs内部的employeeId进行映射来获取对应人员在飞书中的员工Id
部门同步
Note部门同步和人员同步类似,飞书中的部门层级需和xrxs内部的部门层级一致,可能涉及到部门树的构建和映射。