飞书命令行工具怎么搞,写给喜欢折腾效率的同事

飞书下载 ·
飞书命令行工具怎么搞,写给喜欢折腾效率的同事

下载与安装步骤

先别急着找安装包,飞书命令行工具本身没有官方独立安装器,它内嵌在飞书桌面版里,但要用它你得先把飞书桌面版装好。点本页下载按钮拿到的是标准飞书安装包,Windows 直接双击运行,macOS 拖到 Applications 就行,Linux 那边有 deb 和 rpm 两种,看自己发行版选。装完之后,命令行工具并不会自动出现在 PATH 里,很多人卡在这一步,以为是安装失败了。

装好后打开飞书,登录你的账号,然后去设置里找「开发者」或者「高级」选项,不同版本菜单位置略有差异,但一般都会有个「启用命令行工具」的开关。打开这个开关后,飞书会在后台注册一个叫 feishu 或者 lark 的命令,具体名字取决于你用的是国际版还是国内版。我一开始没找到这个开关,翻遍了设置菜单,后来才发现藏在「通用」下面的折叠区域里,得细心点。

想确认装没装好,打开终端敲 `which feishu` 或者 `feishu --version`,能返回路径和版本号就说明成了。如果提示命令找不到,多半是 PATH 没刷新,重启终端或者手动把飞书的安装目录加进去就行。Windows 用户注意,PowerShell 和 CMD 的环境变量刷新机制不一样,错了就重启终端再试。

持续更新紧跟官方新版本免费使用无需付费解锁官方正版安装包带数字签名

登录与认证配置

命令行工具不是装完就能用的,你得先让它跟你的飞书账号建立连接。第一次运行 `feishu login` 会弹出一个网页或者二维码,扫码确认就能拿到一个临时的 token。这个 token 有过期时间,短则几小时,长则一天,过期后你得重新登录。别嫌烦,这是安全机制,但你可以用长期 token 来绕开。

长期 token 的获取方式稍微绕一点,得去飞书开放平台创建应用,然后在应用凭证里找到 app_id 和 app_secret,再用这两个去换 tenant_access_token。具体流程是先在终端里设置环境变量 `FEISHU_APP_ID` 和 `FEISHU_APP_SECRET`,然后跑 `feishu auth --tenant`,工具会自动帮你换取并缓存 token。缓存文件一般在用户目录下的 `.feishu` 文件夹里,别删它。

有个坑我踩过,就是多账号场景。如果你工作号和私人号都登了飞书,命令行工具默认用的是最近登录的那个,但你可以在配置里指定用哪个账号。具体来说,在 `.feishu/config.json` 里加一个 `default_user` 字段,填上你的邮箱或者手机号就行。不设的话,随时可能发错消息到错误的群,社死现场。

基础命令与日常操作

最常用的命令是 `feishu send`,用来发消息。它可以给个人发,也可以给群发,格式大概是 `feishu send --to user@company.com --text "你好"` 或者 `feishu send --to group:运营群 --file /path/to/report.pdf`。注意群名得完全匹配,大小写敏感,我一开始用错了大小写,消息静静躺在草稿箱里没发出去,我还以为是网络问题。

另一个高频操作是搜消息记录,`feishu search "关键词"` 能在你的所有会话里翻旧账,比在客户端里用鼠标点来点去快多了。它支持时间过滤,比如 `--from 2023-01-01 --to 2023-12-31`,还能指定搜索范围,只搜某个群或者某个人。这个功能在找之前讨论过的方案时特别好用,不用一个个群点开翻。

还有 `feishu status` 能看当前在线状态,`feishu contacts` 能导出通讯录。导出通讯录这招我喜欢,配合脚本跑一遍就能知道谁离职了谁新入职,比手动刷列表效率高。但注意别用太频繁,可能触发频率限制,报错 429 就歇一会儿再试。

脚本与自动化玩法

命令行工具真正香的地方是能跟脚本结合。比如我写过一个定时报告脚本,每天早上 9 点自动拉取项目数据、生成 Markdown 摘要,然后用 `feishu send` 丢到团队群里。整个过程用 cron 调度,完全不用人工干预,节省了不少每天写日报的时间。这个脚本核心就是几行 shell 加一个 curl 请求,但飞书命令让它省了写 API 调用代码的麻烦。

更进阶的玩法是结合 CI/CD,比如代码合并后自动在发布群里发通知。我在公司的 GitLab CI 里加了一个 stage,跑完测试就 `feishu send --to group:发布通知 --text "构建成功,版本 v1.2.3 已部署"`。一开始我怕认证信息泄露,后来把 token 放在 CI 的变量里,安全多了。

批量操作也顺手,比如给一批人发相同内容,写个 for 循环就行。我处理过给 50 个外部合作方发邀请码的场景,一行 shell 搞定。但要注意发送频率,飞书对消息发送有速率限制,太猛了会被封禁几分钟,搞个 `sleep 1` 就能避开。

问题排查与常见坑

命令报错是最常见的麻烦。`feishu send` 提示权限不足,多半是 token 没有对应权限,去开放平台检查一下应用是否添加了 im:message 之类的 scope。如果提示消息频率超限,那就是发太猛了,等一两分钟再试。还有一个很隐蔽的坑,就是当你用 `feishu send` 发送文件时,文件路径里别带中文或者特殊符号,有时候会解析失败。

登录失效是另一个高频问题,特别是在公司网络环境里,代理或者防火墙会干扰 token 刷新。解决办法是在配置里设置代理,比如 `FEISHU_HTTP_PROXY=http://proxy.company.com:8080`,命令工具会尊重这个环境变量。我这边的企业网络就是必须走代理,不设置的话每次登录都超时。

还有个小毛病是本地时区问题,`feishu search --from` 如果时间格式不对,会默认用 UTC 而不是本地时间,导致查出来的结果差几个小时。建议老老实实写完整日期加 `T` 分隔符,比如 `2024-06-01T00:00:00`,别用带空格的格式,容易解析出错。

进阶技巧与效率心得

如果你跟我一样喜欢折腾,可以试试给 `feishu` 命令加别名或者包装脚本。比如我不喜欢每次输 `--text`,就在 zshrc 里定义了个 `fs` 函数,参数默认当成消息内容,省了几次按键。另外,配合 `jq` 解析 JSON 输出也很爽,`feishu search "需求" --format json | jq .data.items[0].message` 能精准提取某条消息的正文。

还有一个隐藏功能,`feishu export` 能把某段时间的聊天记录导出成 HTML 或者 PDF,适合做归档。我每月跑一次,把重要项目的讨论归档到本地,比在云端翻聊天记录快得多。不过导出大文件时可能会卡,别急躁,等它跑完就行。

最后说个小技巧,`feishu` 命令支持交互模式,直接敲 `feishu` 不带参数就进入一个类似 REPL 的环境,可以连续发命令不用反复敲前缀。这个模式适合临时测试或者快速发几条消息,但注意它不会自动刷新 token,长期挂着可能掉线。

备份与安全建议

命令行工具把所有 token 和配置都放在本地明文文件里,这是安全隐患。如果你电脑被入侵或者有人偷偷翻目录,就能拿到你的凭证冒充你发消息。建议把 `.feishu` 目录权限设成只有自己能读写,Windows 上用 icacls,macOS/Linux 用 chmod 700。另外别把 token 提交到 Git 仓库,我见过有人把 config.json 传上去,结果全公司都能用他的身份发消息。

定期清理过期 token 也是个好习惯,`feishu logout` 能清掉当前缓存的凭证。你可以在脚本里加个判断,如果登录时间超过一天就自动重新登录。我写了个 wrapper,每次都检查 token 的过期时间,快到期就自动触发登录流程。

最终建议是,先用基础命令跑通你的主要场景,再慢慢抠细节。命令行工具解决的是「快速、重复、可脚本化」的需求,真正复杂的手工操作还是飞书客户端顺手。找到两者之间的平衡,不用强求所有事都走命令行。我自己现在日常工作大概是七成客户端、三成命令行,时间长了你会发现命令行才是真正的高效利器。