飞书开放平台对接(feishu-api)
用公司自建应用的凭据访问飞书开放平台,读取/操作飞书数据。
凭据
config.json.enc:团队飞书应用凭据的加密文件(AES-256-GCM + scrypt),仓库中不含明文密钥。- 首次使用:在技能目录运行
python unlock.py,输入团队密码,即生成本地config.json(已被.gitignore忽略,不会提交),之后可直接使用。 - 团队密码不随仓库分发,请向管理员(GitHub: czk-nhgj)通过公司安全渠道索取;如怀疑泄露,请管理员到飞书开发者后台重置 App Secret 并重新加密。
使用方式
优先使用 scripts/feishu_client.py(仅 Python 标准库,无需安装依赖)。客户端会自动获取并缓存 tenant_access_token(约 2 小时有效,过期自动刷新),无需手动处理鉴权。
python feishu_client.py token # 获取访问令牌(测试连通性)
python feishu_client.py user --email a@company.com # 按邮箱查用户
python feishu_client.py user --mobile 13800138000 # 按手机号查用户
python feishu_client.py user --employee-id E001 # 按工号查用户
python feishu_client.py departments # 列出顶层部门
python feishu_client.py departments --parent <id> # 列出某部门下级
python feishu_client.py members --department-id <id> # 列出部门成员
python feishu_client.py chat --chat-id oc_xxx # 查询群信息
python feishu_client.py request --method GET --path /contact/v3/users/me # 调用任意接口
- 也可以把
feishu_client.py作为 Python 库导入使用(如get_user、list_departments、send_text_message、api_request),或通过request子命令调用未预置的接口。 - 本机没有
python命令时,让 Codex 查找当前环境可用的 Python 解释器路径(或询问用户)。
关键约束
- 权限前置:应用必须在飞书开发者后台开通对应 scope 并发布应用版本,否则接口返回
code=99991668(permission denied)。具体接口所需权限见references/api-guide.md(用到具体接口时再读取)。 - 写操作需确认:
send(发消息)等变更操作会真实影响公司数据,执行前先向用户确认收件人与内容。 - 错误处理:接口返回
code != 0即为失败;客户端会在令牌失效(99991663)时自动刷新重试一次,其余错误把code/msg反馈给用户。