lark-openapi-explorer
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseOpenAPI Explorer
OpenAPI Explorer
前置条件: 先阅读了解认证、身份切换和安全规则。../lark-shared/SKILL.md
当用户的需求无法被现有 skill 或 CLI 已注册 API 覆盖时,使用本技能从飞书官方 markdown 文档库中逐层挖掘原生 OpenAPI 接口,然后通过 裸调完成任务。
lark-cli apiPrerequisites: First readto understand authentication, identity switching and security rules.../lark-shared/SKILL.md
When users' requirements cannot be covered by existing skills or registered APIs in CLI, use this skill to layer-by-layer explore native OpenAPI interfaces from Feishu's official markdown document library, then complete tasks by directly calling them via .
lark-cli api文档库结构
Document Library Structure
飞书 OpenAPI 文档以 markdown 层级组织:
llms.txt ← 顶层索引,列出所有模块文档链接
└─ llms-<module>.txt ← 模块文档,包含功能概述 + 底层 API 文档链接
└─ <api-doc>.md ← 单个 API 的完整说明(方法/路径/参数/响应/错误码)文档入口:
| 品牌 | 入口 URL |
|---|---|
| 飞书 (Feishu) | |
| Lark | |
所有文档以中文编写。如果用户使用英文交流,需将文档内容翻译为英文后输出。
Feishu OpenAPI documents are organized in a markdown hierarchy:
llms.txt ← Top-level index, listing links to all module documents
└─ llms-<module>.txt ← Module document, including function overview + links to underlying API documents
└─ <api-doc>.md ← Complete description of a single API (method/path/parameters/response/error codes)Document Entry Points:
| Brand | Entry URL |
|---|---|
| Feishu | |
| Lark | |
All documents are written in Chinese. If users communicate in English, translate the document content to English before outputting.
挖掘流程
Exploration Process
严格按以下步骤逐层检索,不要跳步或猜测 API:
Strictly follow the steps below to retrieve layer by layer, do not skip steps or guess APIs:
Step 1:确认现有能力不足
Step 1: Confirm Existing Capabilities Are Insufficient
bash
undefinedbash
undefined先检查是否已有对应的 skill 或已注册 API
First check if there is a corresponding skill or registered API
lark-cli <可能的service> --help
如果已有对应命令或 shortcut,直接使用,**不需要继续挖掘**。lark-cli <possible-service> --help
If there is a corresponding command or shortcut, use it directly, **no need to continue exploration**.Step 2:从顶层索引定位模块
Step 2: Locate Modules from Top-level Index
用 WebFetch 获取顶层索引,找到与需求相关的模块文档链接:
WebFetch https://open.feishu.cn/llms.txt
→ 提取问题:"列出所有模块文档链接,找出与 <用户需求关键词> 相关的链接"- 飞书品牌使用
open.feishu.cn - Lark 品牌使用
open.larksuite.com - 如不确定用户品牌,默认使用飞书
Use WebFetch to get the top-level index, find links to module documents related to the requirements:
WebFetch https://open.feishu.cn/llms.txt
→ Extraction question: "List all module document links and find those related to <user requirement keywords>"- Use for Feishu brand
open.feishu.cn - Use for Lark brand
open.larksuite.com - Default to Feishu if the user's brand is uncertain
Step 3:从模块文档定位具体 API
Step 3: Locate Specific APIs from Module Documents
用 WebFetch 获取模块文档,找到具体 API 的文档链接:
WebFetch https://open.feishu.cn/llms-docs/zh-CN/llms-<module>.txt
→ 提取问题:"找出与 <用户需求> 相关的 API 说明和文档链接"Use WebFetch to get the module document, find the document link of the specific API:
WebFetch https://open.feishu.cn/llms-docs/zh-CN/llms-<module>.txt
→ Extraction question: "Find API descriptions and document links related to <user requirement>"Step 4:获取 API 完整规范
Step 4: Obtain Complete API Specifications
用 WebFetch 获取具体 API 文档,提取完整的调用规范:
WebFetch https://open.feishu.cn/document/server-docs/.../<api>.md
→ 提取问题:"返回完整 API 规范:HTTP 方法、URL 路径、路径参数、查询参数、请求体字段(名称/类型/必填/说明)、响应字段、所需权限、错误码"Use WebFetch to get the specific API document, extract the complete calling specifications:
WebFetch https://open.feishu.cn/document/server-docs/.../<api>.md
→ Extraction question: "Return complete API specifications: HTTP method, URL path, path parameters, query parameters, request body fields (name/type/required/description), response fields, required permissions, error codes"Step 5:通过 CLI 调用 API
Step 5: Call APIs via CLI
使用 裸调:
lark-cli apibash
undefinedUse for direct calls:
lark-cli apibash
undefinedGET 请求
GET request
lark-cli api GET /open-apis/<path> --params '{"key":"value"}'
lark-cli api GET /open-apis/<path> --params '{"key":"value"}'
POST 请求
POST request
lark-cli api POST /open-apis/<path> --data '{"key":"value"}'
lark-cli api POST /open-apis/<path> --data '{"key":"value"}'
PUT 请求
PUT request
lark-cli api PUT /open-apis/<path> --data '{"key":"value"}'
lark-cli api PUT /open-apis/<path> --data '{"key":"value"}'
DELETE 请求
DELETE request
lark-cli api DELETE /open-apis/<path>
undefinedlark-cli api DELETE /open-apis/<path>
undefined输出规范
Output Specifications
向用户呈现挖掘结果时,按以下格式组织:
- API 名称与功能:一句话描述
- HTTP 方法与路径:
METHOD /open-apis/... - 关键参数:列出必填和常用可选参数
- 所需权限:scope 列表
- 调用示例:给出 的完整命令
lark-cli api - 注意事项:频率限制、特殊约束等
如果用户使用英文交流,将以上所有内容翻译为英文。
When presenting exploration results to users, organize them in the following format:
- API Name & Function: One-sentence description
- HTTP Method & Path:
METHOD /open-apis/... - Key Parameters: List required and commonly used optional parameters
- Required Permissions: List of scopes
- Call Example: Provide the complete command
lark-cli api - Notes: Rate limits, special constraints, etc.
If users communicate in English, translate all the above content to English.
安全规则
Security Rules
- 写入/删除类 API(POST/PUT/DELETE)调用前必须确认用户意图
- 建议先用 预览请求(如支持)
--dry-run - 不要猜测 API 路径或参数——必须从文档中获取确认
- 涉及敏感操作(删除群、移除成员等)时,向用户说明影响范围
- Write/Delete APIs (POST/PUT/DELETE): Must confirm the user's intent before calling
- It is recommended to use to preview the request first (if supported)
--dry-run - Do not guess API paths or parameters — must obtain confirmation from documents
- When involving sensitive operations (such as deleting groups, removing members, etc.), explain the scope of impact to the user
使用场景示例
Usage Scenario Examples
场景 1:用户需要拉人进群(未被 CLI 封装)
Scenario 1: User needs to add someone to a group (not encapsulated by CLI)
bash
undefinedbash
undefinedStep 1: 确认 CLI 没有封装
Step 1: Confirm CLI has no encapsulation
lark-cli im --help
lark-cli im --help
→ 发现没有 chat_members 相关的 create 命令
→ Found no create command related to chat_members
Step 2-4: 通过文档挖掘获得 API 规范
Step 2-4: Obtain API specifications via document exploration
→ POST /open-apis/im/v1/chats/:chat_id/members
→ POST /open-apis/im/v1/chats/:chat_id/members
Step 5: 调用
Step 5: Call the API
lark-cli api POST /open-apis/im/v1/chats/oc_xxx/members
--data '{"id_list":["ou_xxx","ou_yyy"]}'
--params '{"member_id_type":"open_id"}'
--data '{"id_list":["ou_xxx","ou_yyy"]}'
--params '{"member_id_type":"open_id"}'
undefinedlark-cli api POST /open-apis/im/v1/chats/oc_xxx/members
--data '{"id_list":["ou_xxx","ou_yyy"]}'
--params '{"member_id_type":"open_id"}'
--data '{"id_list":["ou_xxx","ou_yyy"]}'
--params '{"member_id_type":"open_id"}'
undefined场景 2:用户需要设置群公告
Scenario 2: User needs to set group announcements
bash
undefinedbash
undefinedStep 1: 确认 CLI 没有封装
Step 1: Confirm CLI has no encapsulation
lark-cli im --help
lark-cli im --help
→ 没有 announcement 相关命令
→ No commands related to announcement
Step 2-4: 挖掘文档
Step 2-4: Explore documents
→ PATCH /open-apis/im/v1/chats/:chat_id/announcement
→ PATCH /open-apis/im/v1/chats/:chat_id/announcement
Step 5: 调用
Step 5: Call the API
lark-cli api PATCH /open-apis/im/v1/chats/oc_xxx/announcement
--data '{"revision":"0","requests":["<html>公告内容</html>"]}'
--data '{"revision":"0","requests":["<html>公告内容</html>"]}'
undefinedlark-cli api PATCH /open-apis/im/v1/chats/oc_xxx/announcement
--data '{"revision":"0","requests":["<html>Announcement content</html>"]}'
--data '{"revision":"0","requests":["<html>Announcement content</html>"]}'
undefined参考
References
- lark-shared — 认证和全局参数
- lark-skill-maker — 如需将挖掘到的 API 固化为新 Skill
- lark-shared — Authentication and global parameters
- lark-skill-maker — If you need to solidify the explored API into a new Skill