权限配置:在功能与风险间找平衡
为了让 OpenClaw 既听话又守规矩,飞书开发者后台的权限勾选至关重要。我们通常把权限分成两类:保命的(基础)和锦上添花的(进阶)。
基础必备:能听会说
不管个人用还是团队用,这几项是底线,缺了机器人就哑巴了:
im:message:p2p_msg:readonly:接收单聊。这是你和机器人私聊的基础。im:message:group_at_msg:readonly:群内@通知。只响应被点名,保护群聊隐私不被过度扫描。im:message.p2p_msg:send&im:message.group_msg:send:发送权限。没有这两项,机器人只能听不能说。
进阶功能:按需索取
如果需要处理文档、查人或者发图,再考虑这些:
- 文档表格:
drive:file:readonly读取云文档,sheet:spreadsheet:readonly专门读 Excel。 - 身份识别:
contact:user.id:readonly获取用户 ID,方便做权限隔离。 - 富媒体:
im:resource:upload如果 AI 要回传图片或报表,必须开这个。
⚠️ 安全红线:千万别碰
有些权限看着方便,实则埋雷:
im:message:everything:readonly:极度危险。开启后机器人会监听所有群消息,非公开谈话可能上传至 AI 模型,直接触发合规事故。contact:contact:readonly:除非你需要基于职位做复杂审批流,否则别开,通讯录信息太敏感。
密钥管理:别让凭据裸奔
直接把 App ID 和 Secret 写在 config.yaml 里是最不安全的做法。一旦代码库泄露或服务器被黑,凭据就完了。这里有三种递进式的加固方案:
1. 环境变量(行业标准)
不要写死在配置文件里,通过系统变量注入最稳妥。
修改配置引用变量:
lark:
app_id: ${LARK_APP_ID}
app_secret: ${LARK_APP_SECRET}
然后在服务器设置环境:
export LARK_APP_ID="你的 ID"
export LARK_APP_SECRET="你的密钥"
Docker 部署的话,直接在 docker-compose.yml 里配 environment 即可。
2. .env 隐藏文件(本地开发)
本地跑 Python 环境时,新建 .env 文件存放密钥,但务必记得加到 .gitignore 里,防止推送到 GitHub。
LARK_APP_ID=cli_a1b2c3d4
LARK_APP_SECRET=secret_e5f6g7h8

