chuchengcao

feishu-meeting-room

查询飞书会议室信息,支持按地域、建筑筛选会议室。使用场景:(1) 需要查找会议室ID用于日程预定 (2) 按地域搜索会议室层级 (3) 查询特定建筑的会议室 (4) 筛选可用会议室 (5) 用户提到"会议室"、"预定会议室"、"找会议室"、"查询会议室ID"。

chuchengcao 4 Updated 2mo ago
GitHub

Install

npx skillscat add chuchengcao/feishu-meeting-room

Install via the SkillsCat registry.

SKILL.md

Feishu Meeting Room

查询飞书会议室信息,支持多层级筛选,帮助用户快速找到合适的会议室。

权限要求

应用需要开通以下权限:

  • vc:rooms.room.basicinfo:read - 获取会议室基本信息
  • vc:rooms.roomlevel:read - 获取会议室层级信息

在飞书开放平台「权限管理」中添加以上权限。

工作流程

场景 1:查找会议室 ID(基本流程)

用户需求: "帮我查一下北京大钟寺广场的会议室"

执行步骤:

  1. 按地域搜索 room_level_id(如"北京")
  2. 按 room_level_id 查询会议室列表
  3. 筛选/展示结果

示例:

# 步骤1:查询北京的 room_level_id
python3 scripts/query_levels.py --query "北京"

# 步骤2:使用 room_level_id 查询会议室
python3 scripts/query_rooms.py --room-level-id "lvl_xxxxx"

场景 2:预定会议室

用户需求: "帮我预定明天下午3点的会议室"

执行步骤:

  1. 先查询可用的会议室(场景1)
  2. 用户选择合适的会议室
  3. 使用 feishu_calendar_event 创建日程,会议室作为 resource 参会人

⚠️ 预定时间限制:

  • 禁止预定超过当前时间 3 个月的会议室
  • 如果用户请求的预定时间超出此限制,必须拒绝并告知用户
  • 示例:当前是 2026-03-11,则最远只能预定到 2026-06-11

预定示例:

{
  "attendees": [
    {"type": "resource", "id": "omm_xxxxx"}
  ]
}

核心功能

1. 查询会议室层级(room_level)

会议室按层级组织:地域 → 建筑 → 楼层

API: POST /open-apis/vc/v1/room_levels

脚本:

python3 scripts/query_levels.py [options]

参数:

  • --query: 搜索关键词(如"北京"、"大钟寺")
  • --page-size: 分页大小

2. 查询会议室列表

API: POST /open-apis/vc/v1/rooms

脚本:

python3 scripts/query_rooms.py [options]

参数:

  • --room-level-id: 会议室层级 ID(重要!)
  • --page-size: 分页大小

3. 高级组合查询

用户需求: "搜索北京大钟寺广场1号楼的可用会议室"

实现方式:

  1. 先查询"北京"的 room_level_id
  2. 再查询"大钟寺"的 room_level_id(可能是北京的子层级)
  3. 最后查询该层级下的会议室列表

示例:

# 查询北京的层级
python3 scripts/query_levels.py --query "北京"

# 查询大钟寺的层级(需要从北京层级下查询)
python3 scripts/query_levels.py --parent-level-id "lvl_beijing"

# 查询大钟寺下的会议室
python3 scripts/query_rooms.py --room-level-id "lvl_dazhongsi"

快速参考

会议室 ID 格式

  • 会议室 ID:omm_ 开头(如 omm_66e487dcc5463235836f9a91a04e1383
  • 会议室层级 ID:lvl_ 开头(具体格式待确认)

常用命令

# 查看帮助
python3 scripts/query_levels.py --help
python3 scripts/query_rooms.py --help

# 查询层级
python3 scripts/query_levels.py --query "北京" --app-id $APP_ID --app-secret $APP_SECRET

# 查询会议室
python3 scripts/query_rooms.py --room-level-id "lvl_xxxxx" --app-id $APP_ID --app-secret $APP_SECRET

调试与问题排查

常见问题

  1. 权限不足 (99991663)

    • 确认应用已开通 vc:rooms.room.basicinfo:readvc:rooms.roomlevel:read 权限
    • 在开放平台「权限管理」中添加
  2. 找不到会议室

    • 先确认 room_level_id 是否正确
    • 使用层级查询找到正确的层级 ID
  3. 会议室信息不全

    • 不同层级的会议室返回的字段可能不同
    • 楼层信息可能需要从会议室详情接口获取

调试方法

Resources

scripts/

  • query_levels.py: 查询会议室层级
  • query_rooms.py: 查询会议室列表

references/

  • api_docs.md: VC Room API 详细文档