☰
零基础安装部署openClaw并接入飞书/企业微信 超详细教程:用TaoToken统一Key打通消息通道
2026/10/3 12:21:45 网站建设 项目流程

1. 为什么零基础部署 openClaw 会卡在消息通道鉴权

openClaw 是一个轻量级的开源办公自动化服务,跑起来之后能帮你把飞书、企业微信里的消息、审批、定时任务串成自动化流程。它适合谁?适合手里有一台能联网的 Linux 小机器、想让办公平台自动发通知或处理事件的普通开发者,甚至是不太懂后端的产品、运营同学。你不需要先精通 Python,只要照着命令敲,就能把服务拉起来。

但真正让新手翻车的,往往不是安装本身,而是「接入」这一步。openClaw 本体部署只要 Python 加 Git 就能跑,可一旦要对接飞书和企业微信,问题就来了:飞书要 App ID、App Secret、Encrypt Key、回调地址;企业微信要 CorpID、AgentID、Secret、回调 URL。两个平台的凭证字段名不一样、回调路径不一样、消息体结构也不一样。更麻烦的是,如果你还想让 openClaw 调用大模型来做智能回复或内容生成,那还得再配一套模型 API 的 Key 和 Base URL。于是配置文件里散落着三四个平台的鉴权信息,改一个忘一个,排查起来非常痛苦。

我试过把飞书和企业微信的凭证分别写在两个文件里,结果重启服务后回调一直 401,查了半天才发现是某个 Secret 复制时多了个空格。这种「鉴权配置分散」就是零基础用户最大的拦路虎。这篇教程的思路是:openClaw 负责消息通道,模型鉴权统一走 TaoToken 的 Key 和 API 通道,这样你只需要维护一份模型侧的凭证,飞书和企业微信各自只填自己平台必需的字段,链路清晰很多。

下面我会从环境准备开始,一步步带你完成 openClaw 安装、配置文件编写、飞书接入、企业微信接入,最后用真实请求验证消息能不能发出去。所有配置片段都可以直接复制,路径和字段名保持一致,你照着改自己的值就行。

2. TaoToken 统一 Key 的前置准备与 openClaw 环境搭建

在动手改 openClaw 配置之前,先把两件事准备好:一是模型侧的 TaoToken Key,二是 openClaw 运行所需的基础环境。这两步做完,后面接入飞书和企业微信才不会因为缺依赖或缺鉴权而中断。

先说 TaoToken 这边。它的作用是给你一个统一的 API 入口和 Key,openClaw 在需要调用模型能力时,不用分别去各个平台申请,只认这一个 Base URL 和 Key 就行。你需要去官网注册并拿到 API Key,地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,注册后在控制台里创建 Key。控制台入口在这里:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite 。创建完 Key 之后,API 的基础地址统一用 https://taotoken.net/api ,注意这个地址后面不加任何 UTM 参数,配置里直接写这个就行。模型 ID 你可以根据自己需要选,比如做对话润色就选对话类模型,做代码辅助就选 coding 类模型,具体可用列表在文档里能查到:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。

拿到 Key 之后先别急着填进 openClaw,可以先用模型对话页面验证一下 Key 是否可用:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 。能正常返回内容,说明 Key 和通道没问题,再往下走。

接着搭 openClaw 的运行环境。openClaw 基于 Python,所以先确认系统里有 Python 3.8 以上版本。以 Ubuntu 20.04 为例,更新源并安装基础编译依赖:

sudo apt update sudo apt install -y gcc make zlib1g-dev libbz2-dev libssl-dev libncurses5-dev \ libsqlite3-dev libreadline-dev libffi-dev liblzma-dev git

如果你用的是 CentOS 7,把上面的 apt 换成 yum,包名基本对应。装完依赖后拉取 openClaw 源码,创建工作目录并克隆:

sudo mkdir -p /opt/openClaw && cd /opt/openClaw sudo git clone https://github.com/openClaw/openClaw.git .

进入目录安装 Python 依赖,国内网络建议换清华源加速:

cd /opt/openClaw pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

依赖装完后复制配置模板,准备进入下一步的配置文件编写:

cp config.example.yaml config.yaml

到这里,TaoToken 的 Key 有了,openClaw 的代码和依赖也齐了。接下来就是核心环节:把模型鉴权、飞书、企业微信三块配置写进同一个 config.yaml,让 openClaw 启动后能同时处理两个平台的消息。

3. 可复制的 openClaw 配置文件:模型、飞书、企业微信三合一

这一节是整篇教程最关键的部分。openClaw 的所有接入信息都集中在 config.yaml 里,我会把模型通道、飞书、企业微信三段配置完整写出来,你复制后替换成自己的值即可。注意 YAML 对缩进敏感,建议用两个空格缩进,不要用 Tab。

先看模型通道这一段。openClaw 调用模型时,Base URL 指向 TaoToken 的 API 地址,Key 填你在控制台创建的那串,Model ID 按需选择。配置片段如下:

# 模型通道配置(统一走 TaoToken) llm: provider: openai_compatible base_url: "https://taotoken.net/api" api_key: "sk-你的TaoTokenKey" model: "你的模型ID" timeout: 60

这里 provider 写 openai_compatible 是因为 TaoToken 的 API 兼容 OpenAI 风格的请求格式,openClaw 内置了这类适配。base_url 一定不要带末尾斜杠,也不要加任何查询参数。api_key 就是控制台里那串以 sk- 开头的字符串。model 填你在文档里查到的可用模型 ID。

接着是飞书配置。飞书自建应用需要 App ID、App Secret,如果开启了消息加密还要 Encrypt Key。回调地址要和你在飞书开发者后台填的事件订阅地址完全一致,否则飞书会校验失败。配置片段:

# 飞书配置 lark: app_id: "cli_你的飞书AppID" app_secret: "你的飞书AppSecret" encrypt_key: "你的EncryptKey或留空" verification_token: "你的VerificationToken" callback_url: "http://你的服务器IP:8080/api/lark/callback"

verification_token 是飞书事件订阅里的校验令牌,在开发者后台「事件订阅」页面能看到。如果你暂时没开加密,encrypt_key 留空字符串即可,但 verification_token 建议填上,否则首次配置回调时飞书会要求你完成 URL 校验。

然后是企业微信配置。企业微信自建应用需要 CorpID、AgentID、Secret,回调地址同样要和后台配置的一致。企业微信的回调校验涉及 Token 和 EncodingAESKey,这两个也在应用详情页里。配置片段:

# 企业微信配置 wework: corp_id: "你的企业CorpID" agent_id: "你的AgentID" secret: "你的应用Secret" token: "你的回调Token" encoding_aes_key: "你的EncodingAESKey" callback_url: "http://你的服务器IP:8080/api/wework/callback"

把这三段合并到 config.yaml 里,同时保留服务基础配置。完整的服务段大概是这样:

server: port: 8080 debug: true database: type: sqlite path: ./openclaw.db

这里有个细节:飞书和企业微信的回调路径分别是 /api/lark/callback 和 /api/wework/callback,openClaw 启动后会自动注册这两个路由。你的服务器安全组或防火墙要放行 8080 端口,否则平台侧的回调请求根本到不了服务。如果是本地测试,可以用内网穿透工具把 8080 映射出去,但生产环境建议直接用有公网 IP 的机器。

配置写完后保存,重启 openClaw 让新配置生效:

pkill -f "python3 main.py" nohup python3 main.py > openclaw.log 2>&1 &

启动后看日志确认没有报错:

tail -f openclaw.log

如果看到 Uvicorn running on http://0.0.0.0:8080,说明服务起来了。接下来就是验证请求,确认飞书和企业微信的消息通道真的通了。

4. 验证请求:飞书与企业微信消息发送实测

配置写完不代表接入成功,必须用真实请求验证消息能不能发出去。这一节我会分别给出飞书和企业微信的测试命令,以及成功后的返回结果,你照着替换自己的用户 ID 即可。

先验证飞书。openClaw 启动后会暴露一个发送消息的接口,路径是 /api/lark/send_msg。你需要一个飞书用户的 open_id,格式通常是 ou_ 开头。在飞书开发者后台的「API 调试台」里可以查到测试用户的 open_id。发送命令:

curl -X POST http://127.0.0.1:8080/api/lark/send_msg \ -H "Content-Type: application/json" \ -d '{ "user_id": "ou_你的测试用户openid", "msg_type": "text", "content": { "text": "openClaw 飞书通道测试成功" } }'

如果配置正确,飞书账号会立刻收到这条消息,接口返回类似:

{"code":0,"msg":"success","data":{"message_id":"om_xxxxxx"}}

code 为 0 表示发送成功。如果返回 401 或 403,说明 App ID 或 App Secret 不对,或者应用没有开通消息发送权限。去飞书开发者后台的「权限管理」里确认已勾选「发送消息」相关权限,并发布版本。

再验证企业微信。企业微信的发送接口路径是 /api/wework/send_msg,userid 是成员的账号,比如 zhangsan。命令:

curl -X POST http://127.0.0.1:8080/api/wework/send_msg \ -H "Content-Type: application/json" \ -d '{ "userid": "zhangsan", "msgtype": "text", "text": { "content": "openClaw 企业微信通道测试成功" } }'

成功时企业微信会收到消息,接口返回:

{"errcode":0,"errmsg":"ok","msgid":"xxxxxx"}

errcode 为 0 即成功。如果返回 40001,说明 Secret 不对;返回 60020 通常是可信 IP 没配置,去企业微信后台「应用管理」→「企业可信IP」里把你的服务器公网 IP 加进去。

两个通道都验证通过后,你可以再测一下模型通道是否生效。openClaw 里如果有调用模型的接口,比如 /api/llm/chat,可以发一条:

curl -X POST http://127.0.0.1:8080/api/llm/chat \ -H "Content-Type: application/json" \ -d '{"prompt":"用一句话介绍 openClaw"}'

如果返回了模型生成的内容,说明 TaoToken 的 Key 和 Base URL 配置正确,模型通道也通了。到这里,飞书、企业微信、模型三条链路全部验证完毕,openClaw 已经可以正常处理消息和调用模型了。

5. 常见报错排查:401、local proxy failed、reading choices、OAuth

接入过程中最容易遇到的几类报错,我按实际踩过的坑整理出来,你对照日志里的关键词排查即可。

第一类是 401 Unauthorized。这个在飞书和企业微信发送消息时都可能出现。飞书侧 401 通常是 App Secret 填错,或者应用没发布版本。企业微信侧 401 多半是 Secret 不对,或者 CorpID 和 AgentID 不匹配。排查方法:把 config.yaml 里的凭证重新复制一遍,注意不要带空格和换行。可以用下面命令检查配置里有没有多余空白:

grep -n "app_secret\|secret" config.yaml

第二类是 local proxy failed。这个报错一般出现在 openClaw 调用模型通道时,说明它连不上 https://taotoken.net/api 。先确认服务器能正常访问外网:

curl -I https://taotoken.net/api

如果返回 200 或 401 都说明网络通,返回超时就是网络问题。另外检查 config.yaml 里 base_url 有没有写错,末尾不要加斜杠,也不要写成 http。如果服务器有本地代理设置,确认环境变量没有干扰:

env | grep -i proxy

有输出的话,临时清掉再重启服务。

第三类是 reading choices 相关报错,完整信息通常是 cannot read property 'choices' of undefined。这说明模型接口返回的结构和 openClaw 预期的不一致。常见原因是 model 字段填了一个不存在的模型 ID,或者 api_key 无效导致返回了错误对象。排查步骤:先用 curl 直接请求模型接口,看返回结构:

curl -X POST https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-你的Key" \ -H "Content-Type: application/json" \ -d '{"model":"你的模型ID","messages":[{"role":"user","content":"hi"}]}'

如果返回里有 choices 数组,说明 Key 和模型 ID 都对,问题在 openClaw 的解析配置;如果返回 error 字段,按错误信息修正 Key 或模型 ID。

第四类是 OAuth 相关报错,比如 invalid_grant 或 redirect_uri_mismatch。这在飞书和企业微信的回调校验阶段出现。飞书侧要确认开发者后台「事件订阅」里的请求地址和 config.yaml 里的 callback_url 完全一致,包括协议、IP、端口、路径。企业微信侧要确认「接收消息」的 URL 和 Token、EncodingAESKey 与配置一致。改完后台配置后,记得重启 openClaw 并重新触发一次校验。

还有一个高频问题是端口占用导致启动失败。日志里会写 Address already in use。查占用进程:

lsof -i:8080

拿到 PID 后 kill 掉,或者把 config.yaml 里的 port 改成 8081 再启动。改端口后,飞书和企业微信后台的回调地址也要同步改,否则回调会打到旧端口。

排查时优先看 openclaw.log,里面会打印每个请求的路径和返回码。如果日志里没有请求记录,说明请求根本没到服务,问题在防火墙或安全组;如果有请求但返回错误,按上面的分类对照处理。

6. 长期运行与 Coding Plan:让 openClaw 稳定跑下去

openClaw 验证通过后,接下来要考虑的是长期稳定运行。如果你只是本地测试,前台跑着就行;但如果是放在服务器上给团队用,建议用 systemd 托管,避免终端断开后服务挂掉。

创建一个 systemd 服务文件:

sudo vi /etc/systemd/system/openclaw.service

写入以下内容,注意 WorkingDirectory 和 ExecStart 的路径要和你实际部署路径一致:

[Unit] Description=openClaw Service After=network.target [Service] Type=simple WorkingDirectory=/opt/openClaw ExecStart=/usr/bin/python3 main.py Restart=always RestartSec=5 [Install] WantedBy=multi-user.target

保存后启用并启动:

sudo systemctl daemon-reload sudo systemctl enable openclaw sudo systemctl start openclaw sudo systemctl status openclaw

这样服务会开机自启,崩溃后 5 秒自动重启。日志可以用 journalctl 查看:

journalctl -u openclaw -f

如果你后续想让 openClaw 承担更多自动化任务,比如定时汇总消息、自动回复、代码辅助,模型调用量会明显上升。这时候可以考虑 TaoToken 的 Coding Plan,它适合长期编码和 Agent 类场景,入口在这里:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 。对于需要频繁调用模型的自动化流程,用统一的 Key 和通道管理,比每个平台单独申请要省心得多。

另外,如果你在接入过程中需要重新生成或管理 Key,直接去 API Keys 页面操作:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 。接入相关的字段说明和回调格式,文档里写得很细:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。遇到配置问题时,先对照文档确认字段名和路径,大部分报错都能自己解决。

最后提醒一点:飞书和企业微信的凭证都有有效期和权限范围,应用发布后如果改了可见范围或权限,记得重新测试消息发送。服务器 IP 如果变了,企业微信的可信 IP 和飞书的回调地址都要同步更新。把这些维护动作记在备忘录里,openClaw 就能长期稳定地帮你处理办公自动化了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询