feishu-contact

飞书组织架构与 ID 转换。搜索成员、部门管理、ID 互转(OpenID/UserID/UnionID)。

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "feishu-contact" with this command: npx skills add alextangson/feishu_skills/alextangson-feishu-skills-feishu-contact

飞书组织架构与 ID 转换

通过 Contact v3 API 实现成员搜索、部门管理和 ID 转换。


API 基础

Base URL: https://open.feishu.cn/open-apis/contact/v3
认证: Authorization: Bearer {tenant_access_token}


成员查询

API端点说明
搜索成员GET /users/batch_get_id通过邮箱/手机号获取 OpenID
获取职务GET /job_titles/{id}需在管理后台预先维护

部门管理

API端点方法请求体示例说明
获取部门/departments/{department_id}GET-查询单个部门详情
获取部门列表/departmentsGET-支持 parent_department_id 参数
获取父部门路径/departments/{department_id}/parentGET-获取部门层级路径
创建部门/departmentsPOST{"name":"新部门","parent_department_id":"0"}需管理员权限
更新部门/departments/{department_id}PUT{"name":"更新后的名称"}修改部门信息
删除部门/departments/{department_id}DELETE-删除空部门
入职成员/usersPOST{"name":"张三","mobile":"138...","department_ids":["od_xxx"]}创建用户
更新用户/users/{user_id}PUT{"name":"新名字"}修改用户信息
删除用户/users/{user_id}DELETE-移除用户
获取用户列表/usersGET-支持 department_id 过滤

⚠️ 创建部门和入职成员需最高权限,建议预发环境测试。


用户组管理

API端点方法请求体示例说明
获取用户组列表/groupsGET-查询所有用户组
获取用户组/groups/{group_id}GET-查询单个用户组
创建用户组/groupsPOST{"name":"项目组","description":"描述"}创建新用户组
更新用户组/groups/{group_id}PUT{"name":"新名称"}修改用户组
删除用户组/groups/{group_id}DELETE-删除用户组
获取组成员/groups/{group_id}/membersGET-查询组成员列表
添加组成员/groups/{group_id}/membersPOST{"member_id":"ou_xxx","member_type":"user"}添加用户到组
移除组成员/groups/{group_id}/members/{member_id}DELETE-从组移除用户

职级管理

API端点方法请求体示例说明
获取职级列表/job_familiesGET-查询所有职级
获取职级/job_families/{job_family_id}GET-查询单个职级
创建职级/job_familiesPOST{"name":"高级工程师"}创建新职级
更新职级/job_families/{job_family_id}PUT{"name":"资深工程师"}修改职级
删除职级/job_families/{job_family_id}DELETE-删除职级

角色管理

API端点方法请求体示例说明
获取角色列表/rolesGET-查询所有角色
创建角色/rolesPOST{"role_name":"管理员"}创建新角色
更新角色/roles/{role_id}PUT{"role_name":"超级管理员"}修改角色名称
删除角色/roles/{role_id}DELETE-删除角色
获取角色成员/roles/{role_id}/membersGET-查询角色下所有成员
批量添加角色成员/roles/{role_id}/members/batch_createPOST{"members":[{"member_id":"ou_xxx","member_type":"user"}]}批量添加成员
批量删除角色成员/roles/{role_id}/members/batch_deletePOST{"members":[{"member_id":"ou_xxx"}]}批量移除成员

ID 转换(核心)

飞书三种 ID 体系:

ID 类型说明使用场景
open_id应用内唯一同一应用内识别用户
user_id企业内唯一企业内部系统对接
union_id跨应用唯一同一开发者的多个应用间

Contact v3 ID 转换

API端点方法请求体示例说明
批量获取用户 ID/users/batch_get_idPOST{"emails":["a@b.com"],"mobiles":["138xxx"]}通过邮箱/手机获取 OpenID
批量获取部门 ID/departments/batch_get_idPOST{"department_ids":["od_xxx"]}部门 ID 转换
获取用户/users/{user_id}GET-通过 ID 获取用户信息
获取用户信息(批量)/users/batch_getGET-参数:user_ids=ou_1,ou_2

ID 转换最佳实践:

通过 GET /users/{user_id} 接口可一次性获取用户的所有 ID 类型(open_id/user_id/union_id),无需单独转换。

示例:

GET /contact/v3/users/ou_xxx?user_id_type=open_id

响应包含:

{
  "data": {
    "user": {
      "open_id": "ou_xxx",
      "user_id": "7c43cd5f",
      "union_id": "on_xxx"
    }
  }
}

其他

API端点方法说明
获取职务列表/job_titlesGET查询所有预设职务
获取职务/job_titles/{job_title_id}GET查询单个职务详情
获取办公地点/placesGET用于人员地理分布分析
获取人员类型/employee_typesGET查询人员类型列表
获取自定义属性/custom_attr_eventsGET查询自定义属性变更事件
获取授权范围/scopesGET查询应用可访问的部门/用户范围
外部成员访问/application/v1/applications/{app_id}/user_usableGET控制供应商/外包访问权限

事件订阅

通讯录支持 17 个变更事件:

事件类型说明
contact.user.created_v3用户创建
contact.user.updated_v3用户信息更新
contact.user.deleted_v3用户删除
contact.dept.created_v3部门创建
contact.dept.updated_v3部门更新
contact.dept.deleted_v3部门删除
contact.employee_type.created_v3人员类型创建
contact.employee_type.updated_v3人员类型更新
contact.employee_type.deleted_v3人员类型删除
contact.job_family.created_v3职级创建
contact.job_family.updated_v3职级更新
contact.job_family.deleted_v3职级删除

最佳实践

  1. ID 转换优先用 Spark API(更简洁)
  2. 缓存常用 ID(减少 API 调用)
  3. 组织架构变更必须预发测试

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

feishu-calendar

No summary provided by upstream source.

Repository SourceNeeds Review
General

feishu-bitable

No summary provided by upstream source.

Repository SourceNeeds Review
General

feishu-card

No summary provided by upstream source.

Repository SourceNeeds Review
General

feishu-doc-writer

No summary provided by upstream source.

Repository SourceNeeds Review