SuperAPI AI 工具集

lark-contact

办公与效率

查看项目

更新于 10-15 08:33

技能介绍

用途

lark-contact 是飞书 / Lark 通讯录相关的命令行技能,主要用于身份解析与人员资料查询。核心用途包括:按姓名或邮箱解析成 open_id;按 open_id 反查姓名、部门、邮箱、联系方式、个人状态、签名;以及按关键词搜索当前用户可见的机器人 / 智能体(agent)。

当用户提到一个名字要下一步发消息 / 排日程,或拿到 open_id 需要补充资料时,此技能可用于确认身份。

主要能力

按身份划分的命令

user 身份和 bot 身份是两条完全独立的路径。需要先确定当前身份,再选择命令:

  • 按姓名 / 邮箱搜员工拿 open_id:user 身份可用 +search-user,bot 身份不支持。
  • 按关键词搜索当前用户可见的机器人 / 智能体:user 身份可用 +search-bot,bot 身份不支持。
  • 已知 open_id 取他人资料:user 身份使用 +search-user --user-ids <id>,bot 身份使用 +get-user --user-id <id>。
  • 查看自己:user 身份可用 +get-user 或 +search-user --user-ids me,bot 身份不支持。
  • 查同事的个人状态 / 签名:通过 user_profiles batch_query,bot 身份不支持。

已知 open_id 时的处理

若已知 open_id 只是想发消息 / 排日程,不必经过 contact,直接使用 lark-im / lark-calendar。

名字类型不明确时

用户给的名字常常不表明类型。例如「和 reviewDuck 约个会」里的 reviewDuck 可能是同事昵称,也可能是机器人。名字含 bot / agent / AI / 助手 / 机器人 / 智能体 / assistant 等明显特征时,反过来先搜机器人更快;不确定的话两边都搜一下。

使用方式

典型场景

找张三给他发消息:先搜,确认 open_id,再发:

lark-cli contact +search-user --query "张三" --has-chatted --as user
lark-cli im +messages-send --user-id ou_xxx --text "Hi!"

批量查同事的个人状态 / 个性签名(先用 schema 看参数):

lark-cli schema contact.user_profiles.batch_query
lark-cli contact user_profiles batch_query \
  --params '{"user_id_type":"open_id"}' \
  --data '{"user_ids":["ou_xxx","ou_yyy"],"query_option":{"include_personal_status":true,"include_description":true}}' \
  --as user

搜索命中多条且后续操作有副作用(发消息、邀请会议等),把候选列给用户挑;不要擅自选第一条。

搜索机器人 / 智能体

+search-bot 使用 user 身份按关键词搜索当前用户可见的机器人,返回 ou_ 开头的机器人 open_id。参数细节等见 lark-contact-search-bot.md。

lark-cli contact +search-bot --query '会议助手' --as user
lark-cli contact +search-bot --queries '会议助手,日报助手,审批助手' --as user

适用场景

  • 需要根据姓名或邮箱查找对应员工并获取 open_id,以便后续发消息或安排日程。
  • 已知 open_id,需要反查该用户的姓名、部门、邮箱、联系方式、个人状态或签名。
  • 查看自己的资料信息。
  • 按关键词搜索当前用户可见的机器人或智能体,用于与其交互或确认身份。
  • 在发消息、邀请会议等有副作用的操作前,先完成身份确认。

限制

  • 41050 / Permission denied 受当前身份的可见范围限制(三条命令都可能遇到)。细节见 lark-shared。
  • 跨租户用户(is_cross_tenant=true)多数业务字段为空字符串,这是飞书可见性规则,下游需做空值兜底。
  • ID 类型:+get-user 可通过 --user-id-type 使用 open_id、union_id 或 user_id;+search-user 使用用户 open_id;+search-bot 不支持按 ID 查询,它按关键词搜索并返回机器人 open_id。

不在本 skill 范围

  • 发消息 / 查聊天记录:使用 lark-im。
  • 排日程 / 邀请会议:使用 lark-calendar。
  • 部门树 / 按部门列员工 / 组织架构:使用 lark-openapi-explorer 查找原生接口。