소스 정보
- 저장소
- diegosouzapw/awesome-omni-skill
- 최근 소스 활동
- 2026년 2월 28일 03:57
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 50
- 포크
- 19
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/diegosouzapw/awesome-omni-skill --skill lexiang명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
Token-efficient tracking for AI orchestration. CLI-first for status updates (~50 tokens), agent fallback for complex ops (~1KB). Use when: updating task status, querying blockers, creating progress files, validating phases.
AshAi extension guidelines for integrating AI capabilities with Ash Framework. Use when implementing vectorization/embeddings, exposing Ash actions as LLM tools, creating prompt-backed actions, or setting up MCP servers. Covers semantic search, LangChain integration, and structured outputs.
This skill should be used when solving hard questions, complex architectural problems, or debugging issues that benefit from GPT-5 Pro or GPT-5.1 thinking models with large file context. Use when standard Claude analysis needs deeper reasoning or extended context windows.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | lexiang |
| description | 腾讯乐享知识库 API 接口文档。包含通讯录管理、团队管理、知识库管理、知识节点管理、任务管理、自定义属性管理、操作日志、AI助手、单点登录、素材管理、导出任务管理等接口。 |
| homepage | https://lexiang.tencent.com/wiki/api/ |
| metadata | {"clawdbot":{"emoji":"📚"}} |
腾讯乐享知识库是企业级知识管理平台,提供知识库、团队协作、文档管理、AI助手等功能。
root_entry_id 作为根节点Team -> Space -> Entry(树形结构,root_entry_id 为根)
csig.lexiangla.com| 资源类型 | URL 格式 | 示例 |
|---|---|---|
| 团队首页 | https://{domain}/t/{team_id}/spaces | https://csig.lexiangla.com/t/abc123/spaces |
| 知识库 | https://{domain}/spaces/{space_id} | https://csig.lexiangla.com/spaces/xyz789 |
| 知识条目(页面) | https://{domain}/pages/{entry_id} | https://csig.lexiangla.com/pages/def456 |
https://lexiang.tencent.com/wiki/{entry_id} 格式,这种格式无法正常访问/pages/{entry_id} 或 /spaces/{space_id}links 字段(如果存在)relationships 指定 space 和 parent_entry?content_type=html 参数x-staff-id 头部以下接口需要在请求头中添加 x-staff-id:
/v1/ai/search)/v1/ai/qa)| 错误信息 | 原因 | 解决方案 |
|---|---|---|
必须指定员工账号 | 缺少 x-staff-id | 添加 -H "x-staff-id: $LEXIANG_STAFF_ID" |
data.attributes.entry_type 不能为空 | 请求格式错误 | 使用 JSON:API 格式 |
content_type 不能为空 | 缺少参数 | 添加 ?content_type=html |
AppKey 和 AppSecret(初始化后仅显示一次,请妥善保管)凭证配置支持以下方式(按优先级排序):
export LEXIANG_APP_KEY="your_app_key"
export LEXIANG_APP_SECRET="your_app_secret"
export LEXIANG_STAFF_ID="your_staff_id" # 用于写操作的身份标识
在 ~/.clawdbot/clawdbot.json 中使用 env 字段配置:
{
"skills": {
"entries": {
"lexiang": {
"env": {
"LEXIANG_APP_KEY": "your_app_key",
"LEXIANG_APP_SECRET": "your_app_secret",
"LEXIANG_STAFF_ID": "your_staff_id"
}
}
}
}
}
关于 LEXIANG_STAFF_ID:
- 这是进行写操作(创建/更新/删除文档等)时必需的身份标识
- 对应乐享通讯录中的员工账号(staff_id)
- 该员工需要具有对应知识库/团队的编辑权限
- 获取方式:在乐享后台【设置】→【通讯录】中查看自己的员工账号
mkdir -p ~/.config/lexiang
echo '{"app_key":"your_app_key","app_secret":"your_app_secret","staff_id":"your_staff_id"}' > ~/.config/lexiang/credentials
chmod 600 ~/.config/lexiang/credentials
安全提示:凭证文件权限设为 600,仅本人可读写
创建初始化脚本以便快速配置:
cat > ~/.config/lexiang/init.sh << 'EOF'
#!/bin/bash
# 加载乐享凭证和获取 Token
# 优先级:环境变量 > clawdbot.json (env) > ~/.config/lexiang/credentials
# 1. 检查环境变量(clawdbot 会自动从 env 字段注入)
if [ -n "$LEXIANG_APP_KEY" ] && [ -n "$LEXIANG_APP_SECRET" ]; then
echo "使用环境变量中的凭证"
# 从环境变量加载 staff_id(如果有)
if [ -z "$LEXIANG_STAFF_ID" ]; then
# 尝试从 clawdbot.json 获取 staff_id
if [ -f ~/.clawdbot/clawdbot.json ]; then
STAFF_ID=$(jq -r '.skills.entries.lexiang.env.LEXIANG_STAFF_ID // empty' ~/.clawdbot/clawdbot.json 2>/dev/null)
if [ -n "$STAFF_ID" ]; then
export LEXIANG_STAFF_ID="$STAFF_ID"
fi
fi
fi
# 2. 检查 clawdbot.json 的 env 配置
elif [ -f ~/.clawdbot/clawdbot.json ]; then
APP_KEY=$(jq -r '.skills.entries.lexiang.env.LEXIANG_APP_KEY // empty' ~/.clawdbot/clawdbot.json 2>/dev/null)
APP_SECRET=$(jq -r '.skills.entries.lexiang.env.LEXIANG_APP_SECRET // empty' ~/.clawdbot/clawdbot.json 2>/dev/null)
STAFF_ID=$(jq -r '.skills.entries.lexiang.env.LEXIANG_STAFF_ID // empty' ~/.clawdbot/clawdbot.json 2>/dev/null)
if [ -n "$APP_KEY" ] && [ -n "$APP_SECRET" ];
LEXIANG_APP_KEY=
LEXIANG_APP_SECRET=
[ -n ];
LEXIANG_STAFF_ID=
[ -f ~/.config/lexiang/credentials ];
LEXIANG_CREDS=$( ~/.config/lexiang/credentials)
LEXIANG_APP_KEY=$( | jq -r )
LEXIANG_APP_SECRET=$( | jq -r )
STAFF_ID=$( | jq -r )
[ -n ];
LEXIANG_STAFF_ID=
[ -z ] || [ -z ];
1 2>/dev/null || 1
[ -z ];
[ -f ~/.config/lexiang/token ];
TOKEN_AGE=$(($(date +%s) - $(stat -f %m ~/.config/lexiang/token >/dev/null || stat -c %Y ~/.config/lexiang/token)))
[ -lt 7000 ];
LEXIANG_TOKEN=$( ~/.config/lexiang/token)
0 2>/dev/null || 0
LEXIANG_TOKEN=$(curl -s -X POST \
-H \
-d \
| jq -r )
-p ~/.config/lexiang
> ~/.config/lexiang/token
EOF
+x ~/.config/lexiang/init.sh
使用方式:
source ~/.config/lexiang/init.sh
# 然后即可使用 $LEXIANG_TOKEN 和 $LEXIANG_STAFF_ID 变量
LEXIANG_APP_KEY / LEXIANG_APP_SECRET / LEXIANG_STAFF_ID 环境变量~/.clawdbot/clawdbot.json 中设置 skills.entries.lexiang.env.LEXIANG_APP_KEY / skills.entries.lexiang.env.LEXIANG_APP_SECRET / skills.entries.lexiang.env.LEXIANG_STAFF_ID~/.config/lexiang/credentials 中存储 JSON 格式凭证在所有 API 调用前,先加载凭证和获取 token:
# 方式一:使用初始化脚本(推荐,自动处理多种配置来源)
source ~/.config/lexiang/init.sh
# 方式二:手动加载(从 clawdbot.json 的 env 配置)
LEXIANG_APP_KEY=$(jq -r '.skills.entries.lexiang.env.LEXIANG_APP_KEY' ~/.clawdbot/clawdbot.json)
LEXIANG_APP_SECRET=$(jq -r '.skills.entries.lexiang.env.LEXIANG_APP_SECRET' ~/.clawdbot/clawdbot.json)
LEXIANG_STAFF_ID=$(jq -r '.skills.entries.lexiang.env.LEXIANG_STAFF_ID' ~/.clawdbot/clawdbot.json)
# 获取 access_token(有效期 2 小时)
LEXIANG_TOKEN=$(curl -s -X POST "https://lxapi.lexiangla.com/cgi-bin/token" \
-H "Content-Type: application/json; charset=utf-8" \
-d "{\"grant_type\":\"client_credentials\",\"app_key\":\"$LEXIANG_APP_KEY\",\"app_secret\":\"$LEXIANG_APP_SECRET\"}" \
| jq -r '.access_token')
echo "Token: $LEXIANG_TOKEN"
echo "Staff ID: $LEXIANG_STAFF_ID"
响应示例:
{
"token_type": "Bearer",
"expires_in": 7200,
"access_token": "XXXXXXXXX"
}
注意:
access_token有效期为 2 小时(7200秒)- 频率限制:20次/10分钟
- 必须缓存 token,避免频繁调用导致触发频率限制被拦截
- 建议将 token 缓存到文件:
echo $LEXIANG_TOKEN > ~/.config/lexiang/token
如果已缓存 token,可直接加载:
LEXIANG_TOKEN=$(cat ~/.config/lexiang/token)
所有接口调用需在 Header 中携带:
curl -X GET "https://lxapi.lexiangla.com/cgi-bin/v1/..." \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "Content-Type: application/json; charset=utf-8"
写操作需要指定员工身份:
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/..." \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8"
重要:
x-staff-id是进行写操作(创建、更新、删除等)的必需参数- 建议使用配置的
$LEXIANG_STAFF_ID环境变量- 该员工账号需要具有目标资源的相应权限(如知识库的编辑权限)
- 如果需要忽略权限校验(仅在特定场景下),可使用
x-staff-id: system-bot
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/create" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"staff_id": "zhangsan",
"name": "张三",
"phone": "13800138000",
"email": "zhangsan@example.com",
"department": [1, 2],
"position": "产品经理"
}'
参数:
| 参数 | 必须 | 说明 |
|---|---|---|
| staff_id | 是 | 员工账号,企业内唯一 |
| name | 是 | 成员名称 |
| phone | 是 | 手机号码,企业内唯一 |
| 否 | 邮箱 | |
| department | 否 | 部门ID列表 |
| is_leader_in_dept | 否 | 是否为部门领导(数组,对应 department) |
| direct_leader | 否 | 直属上级(staff_id 数组) |
| main_depart | 否 | 主部门ID |
| position | 否 | 职务 |
| extra_attr | 否 | 自定义字段 |
频率限制:3000次/分钟
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/update" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"staff_id": "zhangsan", "name": "张三丰"}'
注意:成员激活后,phone 和 email 不可通过接口变更
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/resign" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"staff_id": "zhangsan"}'
删除后无法再使用乐享或接收消息,如需恢复可调用"重新入职"接口
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/entry" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"staff_id": "zhangsan", "department": [1]}'
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/forbidden" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"staffs": ["staff1", "staff2"]}'
禁用后无法使用乐享或接收消息,但其他成员仍可见其数据。最多100个
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/active" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"staffs": ["staff1", "staff2"]}'
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/add-manager" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"staff_id": "zhangsan"}'
curl "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/get?staff_id=zhangsan" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/list?department_id=1&page=1&per_page=100&fetch_child=1" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
| 参数 | 必须 | 说明 |
|---|---|---|
| department_id | 是 | 部门ID |
| page | 否 | 页码,默认1 |
| per_page | 否 | 每页数量,最大1000 |
| fetch_child | 否 | 1:包含子部门成员, 0:不包含 |
curl "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/managers" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/extra-attrs" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/export/user" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"aeskey": "your_32_char_aes_key_here_12345"}'
aeskey为32位加密密钥(a-z, A-Z, 0-9),用于解密下载文件- 频率限制:10次/分钟
- 需轮询查询任务状态获取下载链接
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/department/create" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"name": "研发部", "parent_id": 1, "order": 100}'
| 参数 | 必须 | 说明 |
|---|---|---|
| name | 是 | 部门名称 |
| parent_id | 是 | 父部门ID(根部门为1) |
| id | 否 | 指定部门ID(32位整型,>1) |
| order | 否 | 排序值(范围 [0, 2^32),越大越靠前) |
常见错误码:
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/department/edit" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"id": 2, "name": "产品研发部"}'
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/department/delete" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"id": 2}'
不能删除根部门、含有子部门或成员的部门
curl "https://lxapi.lexiangla.com/cgi-bin/v1/contact/department/index?id=1&with_descendant=1" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl "https://lxapi.lexiangla.com/cgi-bin/v1/contact/department/get?id=2" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/export/department" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"aeskey": "your_32_char_aes_key_here_12345"}'
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/teams?limit=20&page_token=" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/teams/{team_id}" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/teams/{team_id}/subject?downgrade=0" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"data": [
{"type": "staff", "id": "lisi", "role": "manager"},
{"type": "department", "id": "123", "role": "editor"}
]
}'
| 参数 | 说明 |
|---|---|
| downgrade | 0:仅增加/不降级, 1:允许覆盖权限 |
| type | staff(成员) 或 department(部门) |
| role | manager(管理), editor(编辑), downloader(查看下载), viewer(仅查看) |
curl -X DELETE "https://lxapi.lexiangla.com/cgi-bin/v1/kb/teams/{team_id}/subject" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"data": [{"type": "staff", "id": "lisi", "role": "editor"}]}'
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/teams/{team_id}/subject?limit=20" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"name": "技术文档库",
"team": {
"data": {"type": "team", "id": "team_id_here"}
},
"visible_type": 1,
"subject": [
{"type": "staff", "id": "lisi", "role": "editor"}
]
}'
| 参数 | 必须 | 说明 |
|---|---|---|
| name | 是 | 知识库名称 |
| team.data.id | 是 | 所属团队ID |
| visible_type | 否 | 0:不可见, 1:可见, 2:跟随团队 |
| subject | 否 | 初始化权限设置 |
curl -X PUT "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces/{space_id}" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"name": "新知识库名称"}'
curl -X DELETE "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces/{space_id}" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID"
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces?team_id={team_id}&limit=20" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces/{space_id}" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces/{space_id}/subject?downgrade=0" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"data": [
{"type": "staff", "id": "lisi", "role": "editor"},
{"type": "department", "id": "123", "role": "viewer"}
]
}'
curl -X DELETE "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces/{space_id}/subject" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"data": [{"type": "staff", "id": "lisi", "role": "editor"}]}'
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces/{space_id}/subject?limit=20" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"data": {
"type": "kb_entry",
"attributes": {
"entry_type": "directory",
"name": "文件夹名称"
},
"relationships": {
"space": {
"data": {"type": "kb_space", "id": "space_id_here"}
},
"parent_entry": {
"data": {"type": "kb_entry", "id": "parent_entry_id"}
}
}
}
}'
注意:使用 JSON:API 规范格式,
space_id和parent_entry_id需要通过relationships指定
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"data": {
"type": "kb_entry",
"attributes": {
"entry_type": "page",
"name": "文档标题"
},
"relationships": {
"space": {
"data": {"type": "kb_space", "id": "space_id_here"}
},
"parent_entry": {
"data": {"type": "kb_entry", "id": "parent_entry_id"}
}
}
}
}'
注意:使用 JSON:API 规范格式
# 需先调用"本地文件上传"接口获取 state
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries?state={STATE}" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"data": {
"type": "kb_entry",
"attributes": {
"entry_type": "file",
"name": "文件名.pdf"
},
"relationships": {
"space": {
"data": {"type": "kb_space", "id": "space_id_here"}
},
"parent_entry": {
"data": {"type": "kb_entry", "id": "parent_entry_id"}
}
}
}
}'
支持类型:video(视频), audio(音频), file(图片/文档等)
curl -X PUT "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/rename" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"name": "新名称"}'
curl -X PUT "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/upload?state={STATE}" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID"
curl -X DELETE "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID"
注意:删除节点前必须保证其下没有子节点
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries?space_id={space_id}&parent_id={parent_id}&limit=20" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
对于文件类型,响应包含临时
download下载链接(有效60分钟)
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/content?content_type=html" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
| 参数 | 必须 | 说明 |
|---|---|---|
| content_type | 是 | 内容格式,可选值:html |
仅支持 page 类型,返回 HTML 格式内容
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/subject?downgrade=0" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"data": [
{"type": "staff", "id": "lisi", "role": "editor"}
]
}'
curl -X DELETE "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/subject" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"data": [{"type": "staff", "id": "lisi", "role": "editor"}]}'
curl -X PUT "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/inherit" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"member_inherit_type": "inherit"}'
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/subject?limit=20" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
接口地址: POST /cgi-bin/v1/kb/page/entries/{entry_id}/blocks/descendant
请求头:
Authorization: Bearer {access_token}x-staff-id: 成员账号(作为创建者)Content-Type: application/json; charset=utf-8核心参数说明:
| 参数 | 类型 | 必须 | 说明 |
|---|---|---|---|
| parent_block_id | String | 否 | 父块 ID。留空则插入到页面根节点。如需指定位置,可先调用"获取子块列表"获取已有块的 parent_id |
| index | Int | 否 | 插入位置索引(从 0 开始) |
| children | Array | 嵌套块必填 | 第一级子块的临时 ID 列表 |
| descendant | Array | 是 | 所有待创建块的数组 |
💡 提示:对于新建的空白文档,不传 parent_block_id 即可直接插入内容到页面根节点。
descendant 数组对象结构:
| 参数 | 说明 |
|---|---|
| block_id | 嵌套块模式必填,自定义临时 ID(字符串),用于建立父子关系 |
| block_type | 块类型:p(段落), h1-h5(标题), code(代码), table(表格), table_cell(表格单元格), task(任务), callout(高亮块), toggle(折叠块), bulleted_list(无序列表), numbered_list(有序列表), divider(分隔线), column_list(分栏), column(列), mermaid, plantuml |
| children | 该块包含的子块临时 ID 列表 |
| [内容字段] | 根据 block_type 不同使用不同字段:text, heading2, task, table, table_cell 等 |
⚠️ 不支持嵌套子块的类型:
h1, h2, h3, h4, h5codeimage, attachment, videodivider, mermaid, plantumlcurl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/descendant" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"parent_block_id": "页面根块ID",
"index": 0,
"descendant": [
{
"block_type": "p",
"text": {
"elements": [
{
"text_run": {
"content": "这是一段普通文本"
}
}
]
}
}
]
}'
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/descendant" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"parent_block_id": "页面根块ID",
"index": 0,
"descendant": [
{
"block_type": "h2",
"heading2": {
"elements": [
{
"text_run": {
"content": "这是一段"
}
},
{
"text_run": {
"content": "加粗",
"text_style": {
"bold": true
}
}
},
{
"text_run": {
"content": "和"
}
},
{
"text_run": {
"content": "下划线",
"text_style": {
"underline": true
}
}
},
{
"text_run": {
"content": "的H2标题"
}
}
]
}
}
]
}'
text_style 支持的样式:
| 属性 | 类型 | 说明 |
|---|---|---|
| bold | Boolean | 加粗 |
| italic | Boolean | 斜体 |
| underline | Boolean | 下划线 |
| strikethrough | Boolean | 删除线 |
| code | Boolean | 行内代码 |
| color | String | 文字颜色 |
| background_color | String | 背景颜色 |
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/descendant" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"parent_block_id": "页面根块ID",
"index": 0,
"descendant": [
{
"block_type": "task",
"task": {
"name": "完成 API 文档更新",
"done": false,
"due_at": {
"date": "2025-12-31",
"time": "18:00:00"
},
"assignees": [
{
"staff_uuid": "员工UUID"
}
]
}
}
]
}'
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/descendant" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"parent_block_id": "页面根块ID",
"index": 0,
"descendant": [
{
"block_type": "code",
"code": {
"language": "python",
"content": "def hello():\n print(\"Hello, World!\")"
}
}
]
}'
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/descendant" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"parent_block_id": "页面根块ID",
"index": 0,
"children": ["quote-1"],
"descendant": [
{
"block_id": "quote-1",
"block_type": "quote",
"children": ["quote-text-1"]
},
{
"block_id": "quote-text-1",
"block_type": "p",
"text": {
"elements": [
{
"text_run": {
"content": "这是一段引用文本"
}
}
]
}
}
]
}'
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/descendant" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"parent_block_id": "页面根块ID",
"index": 0,
"children": ["callout-1"],
"descendant": [
{
"block_id": "callout-1",
"block_type": "callout",
"callout": {
"background_color": "#FFF3E0",
"icon": "⚠️"
},
"children": ["callout-text-1"]
},
{
"block_id": "callout-text-1",
"block_type": "p",
"text": {
"elements": [
{
"text_run": {
"content": "这是一个警告提示"
}
}
]
}
}
]
}'
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/descendant" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"parent_block_id": "页面根块ID",
"index": 0,
"descendant": [
{
"block_type": "bulleted_list",
"bulleted": {
"elements": [{"text_run": {"content": "列表项 1"}}]
}
},
{
"block_type": "bulleted_list",
"bulleted": {
"elements": [{"text_run": {"content": "列表项 2"}}]
}
},
{
"block_type": "bulleted_list",
"bulleted": {
"elements": [{"text_run": {"content": "列表项 3"}}]
}
}
]
}'
注意:无序列表使用
bulleted_list类型,内容字段为bulleted;有序列表使用numbered_list类型,内容字段为numbered
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/descendant" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"parent_block_id": "页面根块ID",
"index": 0,
"descendant": [
{
"block_type": "numbered_list",
"numbered": {
"elements": [{"text_run": {"content": "第一步:准备数据"}}]
}
},
{
"block_type": "numbered_list",
"numbered": {
"elements": [{"text_run": {"content": "第二步:训练模型"}}]
}
},
{
"block_type": "numbered_list",
"numbered": {
"elements": [{"text_run": {"content": "第三步:评估结果"}}]
}
}
]
}'
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/descendant" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"parent_block_id": "页面根块ID",
"index": 0,
"children": ["table-1"],
"descendant": [
{
"block_id": "table-1",
"block_type": "table",
"table": {
"row_size": 3,
"column_size": 3,
"column_width": [200, 200, 200],
"header_row": true,
"header_column": false
},
"children": [
"cell-1-1", "cell-1-2", "cell-1-3",
"cell-2-1", "cell-2-2", "cell-2-3",
"cell-3-1", "cell-3-2", "cell-3-3"
]
},
{
"block_id": "cell-1-1",
"block_type": "table_cell",
"table_cell": {"align": "center", "vertical_align": "middle"},
"children": ["text-1-1"]
},
{
"block_id": "text-1-1",
"block_type": "p",
"text": {
"elements": [{"text_run": {"content": "序号", "text_style": {"bold": true}}}]
}
},
{
"block_id": "cell-1-2",
"block_type": "table_cell",
"table_cell": {"align": "center", "vertical_align": "middle"},
"children": ["text-1-2"]
},
{
"block_id": "text-1-2",
"block_type": "p",
"text": {
"elements": [{"text_run": {"content": "名称", "text_style": {"bold": true}}}]
}
},
{
"block_id": "cell-1-3",
"block_type": "table_cell",
"table_cell": {"align": "center", "vertical_align": "middle"},
"children": ["text-1-3"]
},
{
"block_id": "text-1-3",
"block_type": "p",
"text": {
"elements": [{"text_run": {"content": "状态", "text_style": {"bold": true}}}]
}
},
{
"block_id": "cell-2-1",
"block_type": "table_cell",
"table_cell": {"align": "center"},
"children": ["text-2-1"]
},
{
"block_id": "text-2-1",
"block_type": "p",
"text": {
"elements": [{"text_run": {"content": "1"}}]
}
},
{
"block_id": "cell-2-2",
"block_type": "table_cell",
"children": ["text-2-2"]
},
{
"block_id": "text-2-2",
"block_type": "p",
"text": {
"elements": [{"text_run": {"content": "项目 A"}}]
}
},
{
"block_id": "cell-2-3",
"block_type": "table_cell",
"children": ["text-2-3"]
},
{
"block_id": "text-2-3",
"block_type": "p",
"text": {
"elements": [{"text_run": {"content": "✅ 完成", "text_style": {"color": "#4CAF50"}}}]
}
},
{
"block_id": "cell-3-1",
"block_type": "table_cell",
"table_cell": {"align": "center"},
"children": ["text-3-1"]
},
{
"block_id": "text-3-1",
"block_type": "p",
"text": {
"elements": [{"text_run": {"content": "2"}}]
}
},
{
"block_id": "cell-3-2",
"block_type": "table_cell",
"children": ["text-3-2"]
},
{
"block_id": "text-3-2",
"block_type": "p",
"text": {
"elements": [{"text_run": {"content": "项目 B"}}]
}
},
{
"block_id": "cell-3-3",
"block_type": "table_cell",
"children": ["text-3-3"]
},
{
"block_id": "text-3-3",
"block_type": "p",
"text": {
"elements": [{"text_run": {"content": "⏳ 进行中", "text_style": {"color": "#FF9800"}}}]
}
}
]
}'
table 参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
| row_size | Int | 行数 |
| column_size | Int | 列数 |
| column_width | Array | 各列宽度(像素) |
| header_row | Boolean | 是否有表头行 |
| header_column | Boolean | 是否有表头列 |
table_cell 参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
| align | String | 水平对齐:left/center/right |
| vertical_align | String | 垂直对齐:top/middle/bottom |
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/descendant" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"parent_block_id": "页面根块ID",
"index": 0,
"descendant": [
{
"block_type": "h1",
"heading1": {
"elements": [{"text_run": {"content": "文档标题"}}]
}
},
{
"block_type": "p",
"text": {
"elements": [{"text_run": {"content": "这是文档的第一段内容。"}}]
}
},
{
"block_type": "divider"
},
{
"block_type": "h2",
"heading2": {
"elements": [{"text_run": {"content": "第一章节"}}]
}
},
{
"block_type": "p",
"text": {
"elements": [{"text_run": {"content": "章节内容..."}}]
}
}
]
}'
简单块响应:
{
"code": 0,
"message": "success",
"data": {
"descendant": [
{
"block_id": "真实块ID",
"block_type": "p",
"parent_id": "父块ID",
"children": [],
"text": {...}
}
],
"block_id_relation": {}
}
}
嵌套块响应 (包含临时ID到真实ID的映射):
{
"code": 0,
"message": "success",
"data": {
"descendant": [...],
"block_id_relation": {
"table-1": "真实块ID-001",
"cell-1-1": "真实块ID-002",
"text-1-1": "真实块ID-003"
}
}
}
频率限制: 3000 次/分钟 权限要求: 知识库管理权限
curl -X PUT "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/{block_id}" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"action": "update_text_elements",
"text_elements": [{"type": "text", "text": "更新的内容"}]
}'
curl -X DELETE "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/{block_id}" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID"
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/{block_id}" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/children?parent_block_id={block_id}&with_descendants=0" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/files/{file_id}" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
响应包含
links.download附件下载链接
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces/{space_id}/feedbacks?limit=20" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
反馈状态 status:
反馈类型 type:
curl "https://lxapi.lexiangla.com/cgi-bin/v1/tasks?staff_id=zhangsan&type=reading&status=0&limit=20" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
| 参数 | 必须 | 说明 |
|---|---|---|
| staff_id | 是 | 被查询者员工ID |
| type | 否 | reading(阅读任务), collaboration(协作任务) |
| status | 否 | 0:未完成, 2:已完成 |
| limit | 否 | 每页数量,默认20,最大100 |
| page_token | 否 | 分页令牌 |
curl "https://lxapi.lexiangla.com/cgi-bin/v1/tasks/{task_id}" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl "https://lxapi.lexiangla.com/cgi-bin/v1/tasks/{task_id}/members?limit=20" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/properties?source_type=company&limit=20" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
| 参数 | 说明 |
|---|---|
| source_type | company(公司属性), kb_space(知识库属性) |
| source_id | 当 source_type=kb_space 时必填 |
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/properties/{property_id}" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl -X PUT "https://lxapi.lexiangla.com/cgi-bin/v1/kb/properties/{property_id}/schema" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"name": "属性名称",
"description": "属性描述",
"multiple": false,
"options": [
{"key": "opt1", "value": "选项1"},
{"key": "opt2", "value": "选项2"}
]
}'
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/properties/values" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl -X PUT "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/properties/values" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"properties": [
{"id": "property_id", "value": ["opt1"]}
]
}'
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/operation-logs?log_type=kb&started_at=2025-01-01&ended_at=2025-12-31" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
返回知识库内的文档操作(新建、添加权限等),包含操作人、IP、地理位置及具体操作内容
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/operation-logs?log_type=manager&started_at=2025-01-01&ended_at=2025-12-31" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
返回管理层面的操作(平台管理员添加、通讯录管理、团队管理、知识库管理等)
curl "https://lxapi.lexiangla.com/cgi-bin/v1/ai-faqs?limit=20&page=1" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
返回问题、答案、分类、相似问法等信息
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/ai/search" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"query": "搜索关键词"}'
注意:此接口需要
x-staff-id头部
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/ai/qa" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"query": "问题内容",
"research": false
}'
注意:此接口需要
x-staff-id头部research=true使用专业研究模式
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/parsed-content" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/chunked-content" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
用于 Embedding 和检索。返回切片文件下载地址(有效期60分钟,格式为 jsonl)
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/files/{file_id}/parsed-content" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/files/{file_id}/chunked-content" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
步骤一:获取上传凭证
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/files/upload-params" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"name": "文件名.md", "media_type": "file"}'
| 参数 | 必须 | 说明 |
|---|---|---|
| name | 是 | 文件名(需带扩展名,如 "测试.xlsx"、"文档.md") |
| media_type | 是 | 媒体类型:file(文件), video(视频), audio(音频) |
响应示例:
{
"options": {
"Bucket": "lexiang-10029162",
"Region": "ap-shanghai"
},
"object": {
"key": "company_xxx/kb/entries/2026/01/xxx.md",
"state": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"auth": {
"Authorization": "q-sign-algorithm=sha1&q-ak=...",
"XCosSecurityToken": "..."
}
}
}
步骤二:上传文件到腾讯云 COS
curl -X PUT "https://{Bucket}.cos.{Region}.myqcloud.com/{key}" \
-H "Authorization: {object.auth.Authorization}" \
-H "x-cos-security-token: {object.auth.XCosSecurityToken}" \
-H "Content-Type: application/octet-stream" \
--data-binary @/path/to/file.md
上传成功返回 HTTP 200,响应头包含
ETag
步骤三:使用 state 创建知识节点
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries?state={state}&space_id={space_id}" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"data": {
"type": "kb_entry",
"attributes": {
"entry_type": "file",
"name": "文件名.md"
},
"relationships": {
"parent_entry": {
"data": {"type": "kb_entry", "id": "parent_entry_id"}
}
}
}
}'
entry_type 支持的类型:
file: 图片、文档(doc/docx/xls/xlsx/ppt/pptx/pdf/txt/md 等)video: 视频(mp4/mov/avi/wmv 等)audio: 音频(mp3/m4a/wav 等)
#!/bin/bash
LEXIANG_TOKEN=$(cat ~/.config/lexiang/token)
LEXIANG_STAFF_ID="your_staff_id"
FILE_PATH="/path/to/document.md"
FILE_NAME="文档名称.md"
SPACE_ID="your_space_id"
PARENT_ID="parent_entry_id" # 可选,不传则放到知识库根目录
# 步骤1: 获取上传凭证
UPLOAD_PARAMS=$(curl -s -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/files/upload-params" \
-H "Authorization: Bearer $LEXIANG_TOKEN" \
-H "x-staff-id: $LEXIANG_STAFF_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d "{\"name\": \"$FILE_NAME\", \"media_type\": \"file\"}")
BUCKET=$(echo "$UPLOAD_PARAMS" | jq -r '.options.Bucket')
REGION=$(echo "$UPLOAD_PARAMS" | jq -r '.options.Region')
KEY=$(echo "$UPLOAD_PARAMS" | jq -r '.object.key')
STATE=$(echo "$UPLOAD_PARAMS" | jq -r '.object.state')
AUTH=$(echo "$UPLOAD_PARAMS" | jq -r '.object.auth.Authorization')
TOKEN=$(echo "$UPLOAD_PARAMS" | jq -r '.object.auth.XCosSecurityToken')
# 步骤2: 上传到腾讯云COS
curl -s -X PUT "https://${BUCKET}.cos.${REGION}.myqcloud.com/${KEY}" \
-H \
-H \
-H \
--data-binary
curl -s -X POST \
-H \
-H \
-H \
-d
💡 提示:乐享支持 Markdown 文件预览,上传后可直接在线查看渲染效果
curl "https://lxapi.lexiangla.com/cgi-bin/v1/jobs/{job_id}" \
-H "Authorization: Bearer $LEXIANG_TOKEN"
- 只能查询72小时内创建的任务
download_url有效期约 5 小时
响应示例:
{
"code": 0,
"msg": "ok",
"status": 0,
"data": {
"download_url": "https://xxxxx"
}
}
status: 0(等待中), 1(进行中), 2(已完成)
乐享知识库支持 OAuth 授权码模式的单点登录,分为 SP 发起和 IdP 发起两种流程。
用户从企业平台携带凭证跳转至乐享
乐享服务器的请求来源 IP(用于判断请求是否合法):
111.230.70.44111.230.156.88| HTTP状态码 | 说明 |
|---|---|
| 200 OK | 请求成功 |
| 201 Created | 创建成功 |
| 204 No Content | 删除成功 |
| 400 Bad Request | 请求参数错误 |
| 401 Unauthorized | Token无效或过期 |
| 403 Forbidden | 无权限访问 |
| 404 Not Found | 资源不存在 |
| 429 Too Many Requests | 超出频率限制 |
| 错误码 | 说明 |
|---|---|
| 1001 | 用户不存在 |
| 1002 | 部门不存在 |
| 1003 | 参数错误 |
| 1004 | 部门下存在子部门 |
| 1005 | 部门下存在用户 / 部门名称已存在 |
| 1006 | 该部门是根部门 |
| 1007 | 部门层级超过15层 |
| 1010 | 父部门不能为该部门的子部门 |
| 角色 | 说明 |
|---|---|
| manager | 管理权限 |
| editor | 编辑权限 |
| downloader | 查看/下载权限 |
| viewer | 仅查看权限 |
| 方式 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|
| 块接口 (page + blocks) | 精确控制格式、可实时编辑 | 结构复杂,列表/表格等需要嵌套块 | 需要程序化编辑文档内容 |
| 上传 Markdown 文件 | 简单高效、格式完整保留 | 需要三步流程,更新需重新上传 | 推荐! 批量创建文档、Markdown 内容发布 |
对于需要发布 Markdown 格式文档的场景(如技术文档、论文摘要等),强烈推荐使用文件上传方式:
.md 文件的在线渲染如果必须使用块接口(如需要实时编辑文档内容),请注意以下要点:
# ✅ 正确:新建空白文档后,直接插入内容(不传 parent_block_id)
curl -X POST ".../blocks/descendant" \
-d '{"descendant": [...]}'
# ❌ 错误:新建文档后还要先获取 root_block_id
# 这是多此一举,直接不传 parent_block_id 即可
# 无序列表:block_type 是 bulleted_list,但内容字段是 bulleted
{
"block_type": "bulleted_list",
"bulleted": {
"elements": [{"text_run": {"content": "列表项内容"}}]
}
}
# 有序列表:block_type 是 numbered_list,但内容字段是 numbered
{
"block_type": "numbered_list",
"numbered": {
"elements": [{"text_run": {"content": "列表项内容"}}]
}
}
表格、引用块、高亮块等嵌套结构必须:
children 数组(临时 ID 列表)block_id(与父块 children 中的 ID 对应){
"children": ["table-1"], # 声明第一级子块
"descendant": [
{
"block_id": "table-1", # 临时 ID
"block_type": "table",
"children": ["cell-1", "cell-2"] # 表格的子块
},
{
"block_id": "cell-1",
"block_type": "table_cell",
...
}
]
}
# h1 使用 heading1,h2 使用 heading2,以此类推
{
"block_type": "h2",
"heading2": { # 注意:不是 "text"!
"elements": [{"text_run": {"content": "标题内容"}}]
}
}
以下块类型不能包含子块:
h1, h2, h3, h4, h5codeimage, attachment, videodivider, mermaid, plantuml| 错误 | 原因 | 解决方案 |
|---|---|---|
| 列表内容显示为空 | 使用了错误的字段名(如 text 而非 bulleted) | 无序列表用 bulleted,有序列表用 numbered |
| 嵌套块创建失败 | 缺少 children 或 block_id | 确保父子块通过临时 ID 关联 |
| 标题块内容丢失 | 使用了 text 而非 heading1/2/3... | 字段名必须与块类型对应 |
| 引用块创建失败 (code 51) | quote 块需要嵌套结构 | 使用 children + 子块方式 |
| 上传文件接口 404 | 使用了旧版接口路径 | 使用 /v1/kb/files/upload-params |
descendant 数组中