Ubuntu 云服务部署 OpenClaw 并接入飞书机器人

12 阅读5分钟

一、部署openclaw

点击立即登录

1.更新系统包索引

sudo apt update

2.安装 curl

sudo apt install -y curl

3.安装Node.js(LTS版本)

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash 

sudo apt-get install -y nodejs
#安装

4.配置npm镜像(加速国内访问)

npm config set registry https://registry.npmmirror.com

5.安装openclaw

curl -fsSL https://openclaw.ai/install.sh |bash

用键盘方向键选择,回车键确认

选择yes

这里默认,选择回车

6.选择大模型(以Kimi为例)

这里我选择kimi,因为新用户注册有15元的额度

我们先去kimi平台复制密钥信息,后面要用到

6.1. kimi平台配置

获取Kimi API Key

访问kimi平台,进入用户中心

左侧菜单选择API Key管理 ,然后新建,名字自己随便起,点击确定后先把密钥复制

这里密钥只会显示一次,一定要复制后确定,如果没复制到,就新建一个重复上面的步骤

我们选择kimi后回车

地区选择 .cn

默认选择第一个,回车

把前面复制的密钥粘贴进来

默认,回车

选择最后一个 skip for now

选择最后一个

是否设置技能,选no

空格选择第一个,人后回车

选择第二个安装完成

7.验证安装

openclaw status

若显示 running 则表示网关启动成功

8.本地访问 Openclaw Web UI

电脑本地 Ctrl+R

ssh  -N  -L 18789:127.0.0.1:18789 root@172.16.175.146
##去掉 -N 可以本地ssh连接使用命令

选择yes

172.16.175.146换成你的服务器公网地址就行,还有问题就是你的防火墙去配置一下就好了,根据实际情况替换用户名和地址

确保 SSH 转发正常,服务器开启端口转发:AllowTcpForwarding yes

##本地known_hosts冲突或者服务器重装过系统
##地址填你自己对应的
ssh-keygen -R 123.56.117.132

如果远程连接不上,查看服务器端口是否放行,端口转发是否为yes(AllowTcpForwarding yes)

9.获取访问Token

cat /root/.openclaw/openclaw.json | grep token
1.解决 openclaw 命令无法使用问题

echo 'export PATH="$(npm prefix -g)/bin:$PATH"' >> ~/.bashrc



2.验证openclaw 命令,查询openclaw状态

openclaw status

3.通过powershell shh链接ubuntu

ssh -N -L 18789:127.0.0.1:18789 ubuntu@172.16.175.146

4.window 访问openclaw web ui

http://localhost:18789/#token=替换为安装后生成的token
要先本地连接ssh服务才能这样用否则回环地址无效

确保 SSH 转发正常,服务器开启端口转发:AllowTcpForwarding yes

二、接入飞书

1.进入飞书开放平台

飞书开放平台

点击进入开发者后台

填写名称和描述,然后创建应用,可以定义他的图标和颜色,我这里已经有一个机器人了,我就不创建了

2.飞书机器人权限

  • 进入「权限管理」
  • 点击「导入权限」,粘贴以下 JSON 权限配置(可按需精简):

{
  "scopes": {
    "tenant": [
      "aily:file:read",
      "aily:file:write",
      "application:application.app_message_stats.overview:readonly",
      "application:application:self_manage",
      "application:bot.menu:write",
      "cardkit:card:write",
      "contact:contact.base:readonly",
      "contact:user.employee_id:readonly",
      "corehr:file:download",
      "docs:document.content:read",
      "event:ip_list",
      "im:app_feed_card:write",
      "im:biz_entity_tag_relation:read",
      "im:biz_entity_tag_relation:write",
      "im:chat",
      "im:chat.access_event.bot_p2p_chat:read",
      "im:chat.announcement:read",
      "im:chat.announcement:write_only",
      "im:chat.chat_pins:read",
      "im:chat.chat_pins:write_only",
      "im:chat.collab_plugins:read",
      "im:chat.collab_plugins:write_only",
      "im:chat.managers:write_only",
      "im:chat.members:bot_access",
      "im:chat.members:read",
      "im:chat.members:write_only",
      "im:chat.menu_tree:read",
      "im:chat.menu_tree:write_only",
      "im:chat.moderation:read",
      "im:chat.tabs:read",
      "im:chat.tabs:write_only",
      "im:chat.top_notice:write_only",
      "im:chat.widgets:read",
      "im:chat.widgets:write_only",
      "im:chat:create",
      "im:chat:delete",
      "im:chat:moderation:write_only",
      "im:chat:operate_as_owner",
      "im:chat:read",
      "im:chat:readonly",
      "im:chat:update",
      "im:datasync.feed_card.time_sensitive:write",
      "im:message",
      "im:message.group_at_msg:readonly",
      "im:message.group_msg",
      "im:message.p2p_msg:readonly",
      "im:message.pins:read",
      "im:message.pins:write_only",
      "im:message.reactions:read",
      "im:message.reactions:write_only",
      "im:message.urgent",
      "im:message.urgent.status:write",
      "im:message.urgent:phone",
      "im:message.urgent:sms",
      "im:message:readonly",
      "im:message:recall",
      "im:message:send_as_bot",
      "im:message:send_multi_depts",
      "im:message:send_multi_users",
      "im:message:send_sys_msg",
      "im:message:update",
      "im:resource",
      "im:tag:read",
      "im:tag:write",
      "im:url_preview.update",
      "im:user_agent:read",
      "sheets:spreadsheet",
      "wiki:wiki:readonly"
    ],
    "user": [
      "aily:file:read",
      "aily:file:write",
      "contact:contact.base:readonly",
      "im:chat.access_event.bot_p2p_chat:read"
    ]
  }
}

3.添加应用能力

  • 在「应用能力」中启用「机器人」

4.openclaw配置飞书

4.1.添加飞书渠道
openclaw channels add

选择yes

选择飞书

选择npm安装

选择第一个App Secret

这里提示要输入 APP Secret ,我们去飞书开放平台复制

默认回车就行

china

选择第二个

Open - respond in all groups (requires mention)

Finished

yes

open

如图选择进行操作

4.2.重启网关

输入命令重启网关然后会到飞书开放平台

openclaw gateway restart
4.3.配送飞书事件订阅

⚠️ 注意:在配置事件订阅前,请确保已完成 OpenClaw 渠道添加并启动网关。

  • 进入「事件订阅」
  • 选择 「使用长连接接收事件」(WebSocket)
  • 添加事件:im.message.receive_v1

4.4 发布应用
  • 进入「版本管理与发布」
  • 创建版本,提交审核(企业自建应用通常自动通过)

三、验收

1.发送测试消息

  • 在飞书客户端中搜索你的应用名称
  • 进入聊天窗口,发送消息
  • 机器人应能正常回复

2.初始化配对

默认情况第一次发信息,机器人会给你发一个配对码

直接复制最后一行,在命令行发送配对就行了

openclaw pairing approve feishu Z955JECY

最后去飞书发信息测试,如图,已完成飞书机器人的配置

五、总结

✅ 已完成内容

1. 环境搭建
  • Ubuntu 系统基础环境配置
  • Node.js 运行环境安装
  • OpenClaw 核心服务部署
2. 大模型集成
  • 选择 Kimi 作为对话模型
  • 配置 API Key 认证
  • 完成模型与 OpenClaw 的对接
3. 飞书机器人接入
  • 创建飞书企业自建应用
  • 配置应用权限和机器人能力
  • 通过 OpenClaw 添加飞书渠道
  • 设置 WebSocket 长连接接收消息事件
4. 本地访问配置
  • SSH 端口转发实现本地访问 Web UI
  • 获取访问 Token 进行安全认证

🎯 最终成果

  • OpenClaw 网关状态running(正常运行)
  • 飞书机器人:可在飞书客户端搜索到并正常对话
  • 消息响应:用户发送消息后,机器人能通过 Kimi 模型智能回复

💡 注意事项

  1. 密钥管理:Kimi API Key 和飞书 App Secret 需妥善保存
  2. 网络配置:确保服务器防火墙放行必要端口,SSH 转发配置正确
  3. 权限控制:飞书应用权限可按实际需求精简,避免过度授权
  4. 连接稳定性:WebSocket 长连接需保持服务持续运行

🔧 后续可扩展方向

  • 添加更多大模型(如通义千问、文心一言等)
  • 配置技能和插件增强机器人功能
  • 接入更多渠道(如企业微信、钉钉等)
  • 优化回复逻辑和对话体验