返回顶部
f

feishu-cli-auth飞书CLI认证

>-

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
159
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

feishu-cli-auth

飞书 OAuth 认证与 Token 管理

feishu-cli 通过 OAuth 2.0 Authorization Code Flow 获取 User Access Token,用于搜索等需要用户身份的 API。

核心概念

Token 存储位置:所有 OAuth Token 保存在 ~/.feishu-cli/token.json,包括 Access Token、Refresh Token、过期时间和授权 scope。登录、刷新、退出等操作都围绕此文件进行。

两种身份

  • - App Access Token(应用身份):通过 appid/appsecret 自动获取,大多数文档操作使用此身份
  • User Access Token(用户身份):需 OAuth 授权,搜索 API 必须使用此身份

Token 生命周期

  • - Access Token:2 小时有效
  • Refresh Token:30 天有效(需 offline_access scope)
  • 过期后自动用 Refresh Token 刷新,用户无感



两步式非交互登录(AI Agent 推荐)

AI Agent 的 Bash tool 无法进行交互式 stdin 输入,因此 --manual 模式不可用。使用 --print-url + auth callback 两步式流程:

步骤 1:生成授权 URL

始终使用最大 scope 范围授权,一次性覆盖 feishu-cli 所有用户身份功能,避免后续因 scope 不足导致 99991679 错误:

bash
feishu-cli auth login --print-url --scopes offlineaccess search:docs:read search:message drive:drive.search:readonly wiki:wiki:readonly calendar:calendar:read calendar:calendar.event:read calendar:calendar.event:create calendar:calendar.event:update calendar:calendar.event:reply calendar:calendar.freebusy:read task:task:read task:task:write task:tasklist:read task:tasklist:write im:message:readonly im:message.groupmsg:getas_user im:chat:read im:chat:readonly im:chat.members:read contact:user.base:readonly drive:drive.metadata:readonly

输出 JSON(stdout):
json
{
auth_url: https://accounts.feishu.cn/open-apis/authen/v1/authorize?...,
state: 随机64字符十六进制字符串,
redirect_uri: http://127.0.0.1:9768/callback
}

立即返回,不阻塞,不启动 HTTP 服务器。

将 auth_url 展示给用户,请用户在浏览器中打开并完成授权。授权后浏览器会跳转到一个无法访问的页面(127.0.0.1:9768/callback?code=xxx&state=yyy),这是正常的——让用户复制地址栏中的完整 URL。

步骤 2:用回调 URL 换 Token

bash
feishu-cli auth callback <回调URL> --state <步骤1输出的state>

输出 JSON(stdout)+ 人类可读信息(stderr):
json
{
status: success,
expires_at: 2026-03-09T04:31:11+08:00,
scope: auth:user.id:read search:docs:read search:message offline_access
}

Token 自动保存到 ~/.feishu-cli/token.json。

auth callback 常见错误

错误原因解决
code has expired授权 code 有效期约 5 分钟,用户复制回调 URL 太慢重新执行步骤 1 获取新的授权 URL,提醒用户尽快完成
state 不匹配
--state 参数与回调 URL 中的 state 不一致,或混用了不同次 --print-url 的结果 | 确保 --state 使用的是同一次 --print-url 输出的 state 值 | | 网络超时 / 连接失败 | 无法访问飞书 OAuth 服务器(网络不通或代理问题) | 检查网络连通性,确认能访问 open.feishu.cn;如有代理需配置 HTTPS_PROXY |

完整示例

bash

步骤 1(使用最大 scope 范围)


feishu-cli auth login --print-url --scopes offlineaccess search:docs:read search:message drive:drive.search:readonly wiki:wiki:readonly calendar:calendar:read calendar:calendar.event:read calendar:calendar.event:create calendar:calendar.event:update calendar:calendar.event:reply calendar:calendar.freebusy:read task:task:read task:task:write task:tasklist:read task:tasklist:write im:message:readonly im:message.groupmsg:getas_user im:chat:read im:chat:readonly im:chat.members:read contact:user.base:readonly drive:drive.metadata:readonly

→ 展示 auth_url 给用户,用户浏览器授权后复制回调 URL

步骤 2(用步骤 1 的 state 和用户提供的回调 URL)

feishu-cli auth callback http://127.0.0.1:9768/callback?code=xxx&state=yyy --state yyy

Scope 配置

scope 决定了 Token 能访问哪些 API。登录时通过 --scopes 指定(空格分隔)。scope 名称 = 飞书开放平台开发者后台的权限名称,最多 50 个,多次授权累加生效。

默认策略:始终使用最大 scope

每次登录都使用以下完整 scope 列表,一次性覆盖 feishu-cli 全部用户身份功能。避免因 scope 不足导致部分命令报 99991679 错误:

offlineaccess search:docs:read search:message drive:drive.search:readonly wiki:wiki:readonly calendar:calendar:read calendar:calendar.event:read calendar:calendar.event:create calendar:calendar.event:update calendar:calendar.event:reply calendar:calendar.freebusy:read task:task:read task:task:write task:tasklist:read task:tasklist:write im:message:readonly im:message.groupmsg:getas_user im:chat:read im:chat:readonly im:chat.members:read contact:user.base:readonly drive:drive.metadata:readonly

Token 使用策略

feishu-cli 命令按 Token 要求分为三类:

必须 User Token:搜索命令(search docs/messages/apps)和消息/群聊互动命令(msg get/list/history/pins/pin/unpin/reaction/delete、msg search-chats、chat get/update/delete、chat member list/add/remove)通过 resolveRequiredUserToken 强制使用 User Token,自动从 token.json 加载。

可选 User Token:wiki、calendar、task、doc export 等命令通过 resolveOptionalUserToken 默认使用 App Token(租户身份),不会自动从 token.json 加载。仅在通过 --user-access-token 参数或 FEISHUUSERACCESS_TOKEN 环境变量显式指定时才使用 User Token。

仅 App Token:文档创建/导入、消息发送/回复/转发、权限管理等命令仅使用 App Token,不支持 User Token。

Scope 完整说明

scope作用对应命令
offline_access获取 Refresh Token(30 天有效)必须包含,否则 2 小时后需重新登录
search:docs:read
搜索云文档 | search docs | | search:message | 搜索消息 | search messages | | drive:drive.search:readonly | 搜索云空间文件 | search docs(补充权限) | | wiki:wiki:readonly | 知识库读取(用户身份) | wiki get/export/nodes | | calendar:calendar:read | 日历读取 | calendar list/get/primary | | calendar:calendar.event:read | 日历事件读取 | calendar event-search | | calendar:calendar.event:create | 创建日历事件 | calendar create-event | | calendar:calendar.event:update | 更新日历事件 | calendar event-reply | | calendar:calendar.event:reply | 回复日历事件 | calendar event-reply | | calendar:calendar.free_busy:read | 忙闲查询 | calendar freebusy | | task:task:read | 任务读取 | task list/get | | task:task:write | 任务写入 | task create/complete | | task:tasklist:read | 任务列表读取 | tasklist list/get | | task:tasklist:write | 任务列表写入 | tasklist create/delete | | im:message:readonly |

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 feishu-cli-auth-1776117121 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 feishu-cli-auth-1776117121 技能

通过命令行安装

skillhub install feishu-cli-auth-1776117121

下载

⬇ 下载 feishu-cli-auth v1.0.0(免费)

文件大小: 5.97 KB | 发布时间: 2026-4-17 14:48

v1.0.0 最新 2026-4-17 14:48
feishu-cli-auth 1.0.0 初始发布:

- 支持飞书 OAuth 2.0 用户认证,完整两步式非交互登录流程,适合 AI Agent 场景。
- 提供 User Access Token 与 Refresh Token 的获取、自动保存与自动刷新机制。
- 支持 scope 最大化授权策略,覆盖所有常用权限,解决 scope 不足导致的权限报错。
- 内置 Token 状态检查、权限依赖分析和常见认证/权限错误的应对建议。
- 详细兼容多种命令类型,灵活支持 User/App Token 切换与问题排查。

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部