OpenClaw 配置飞书机器人指南(本地部署)
如何在本地部署环境下配置 OpenClaw 对接飞书机器人。主要步骤包括:在飞书开放平台创建企业自建应用并配置相关权限;获取 App ID 和 App Secret 凭证;在 OpenClaw 中完成配置并重启服务;最后通过 Shell 脚本获取目标用户的 OpenID 以实现消息推送测试。该方案适用于希望将 AI 助手集成到飞书工作流的本地部署场景。

如何在本地部署环境下配置 OpenClaw 对接飞书机器人。主要步骤包括:在飞书开放平台创建企业自建应用并配置相关权限;获取 App ID 和 App Secret 凭证;在 OpenClaw 中完成配置并重启服务;最后通过 Shell 脚本获取目标用户的 OpenID 以实现消息推送测试。该方案适用于希望将 AI 助手集成到飞书工作流的本地部署场景。

在开始之前,请确保具备以下条件:
openclaw --version。
OpenClaw AI 助手(可自定义)基于 OpenClaw 的 AI 智能助手(可自定义)
创建成功后,你会看到:
App ID: cli_xxxxxxxxxxxxxxxx
App Secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
⚠️ 重要:立即保存这两个值,后续会用到!

在应用详情页面,添加应用能力,选择机器人。

| 权限名称 | 权限标识 | 用途 |
|---|---|---|
| 获取与发送单聊、群组消息 | im:message | 接收和发送消息 |
| 获取用户基本信息 | contact:user.base:readonly | 获取用户信息 |
| 获取群组信息 | im:chat:readonly | 获取群聊信息 |
| 发送富文本消息 | im:message:send_as_bot | 以机器人身份发送消息 |

1.0.0首次发布,支持基础对话功能App ID 和 App Secret。这是开发者应用的凭证,也是对应机器人的凭证。编辑 OpenClaw 配置文件,填入飞书应用信息。

# 重启服务
openclaw gateway
# 检查状态
openclaw status
预期输出:
✓ OpenClaw 运行中
✓ Gateway: http://0.0.0.0:18789
✓ 飞书通道:已连接
由于本地部署无法直接实现双向交流,需先获取目标用户的 OpenID 以便进行单向推送。
每个飞书用户在特定开发者应用中都有唯一的 OpenID。需要通过接口获取。
创建一个名为 lark.sh 的脚本文件,内容如下:
#!/bin/bash
# =================🔧 配置区域 (请修改这里) =================
APP_ID="cli_xxx"
APP_SECRET="xxx"
PHONE_NUMBER="xxxx" # 替换为你要查询的手机号 (不需要加 +86,接口通常自动识别)
# =======================================================
echo "🚀 开始执行三步查询流程..."
echo "--------------------------------------------------"
# --- 第一步:获取 tenant_access_token ---
echo "1️⃣ 正在获取 Access Token..."
TOKEN_RESP=$(curl -s -X POST "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" \
-H "Content-Type: application/json" \
-d "{ \"app_id\": \"$APP_ID\", \"app_secret\": \"$APP_SECRET\" }")
ACCESS_TOKEN=$(echo "$TOKEN_RESP" | grep -o '"tenant_access_token":"[^"]*"' | cut -d'"' -f4)
if [ -z "$ACCESS_TOKEN" ]; then
echo "❌ 第一步失败:无法获取 Token。"
echo "返回信息:$TOKEN_RESP"
exit 1
fi
echo "✅ Token 获取成功:${ACCESS_TOKEN:0:10}..."
echo ""
# --- 第二步:通过手机号获取 user_id ---
echo "2️⃣ 正在通过手机号 ($PHONE_NUMBER) 查询 user_id..."
STEP2_RESP=$(curl -s -X POST "https://open.feishu.cn/open-apis/contact/v3/users/batch_get_id?user_id_type=user_id" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d "{ \"emails\": [], \"include_resigned\": false, \"mobiles\": [ \"$PHONE_NUMBER\" ] }")
if command -v python3 &> /dev/null; then
USER_ID=$(echo "$STEP2_RESP" | python3 -c "import sys, json; d=json.load(sys.stdin); print(d.get('data',{}).get('user_list',[{}])[0].get('user_id',''))" 2>/dev/null)
else
USER_ID=$(echo "$STEP2_RESP" | grep -o '"user_id":"[^"]*"' | head -1 | cut -d'"' -f4)
fi
if [ -z "$USER_ID" ]; then
echo "❌ 第二步失败:未找到 user_id。"
echo "返回信息:$STEP2_RESP"
echo "💡 提示:请检查手机号是否正确,或应用是否有【读取用户手机号】权限。"
exit 1
fi
echo "✅ 找到 user_id: $USER_ID"
echo ""
# --- 第三步:通过 user_id 获取 open_id ---
echo "3️⃣ 正在通过 user_id ($USER_ID) 查询 open_id..."
TARGET_URL="https://open.feishu.cn/open-apis/contact/v3/users/${USER_ID}?department_id_type=open_department_id&user_id_type=user_id"
STEP3_RESP=$(curl -s -X GET "$TARGET_URL" \
-H "Authorization: Bearer $ACCESS_TOKEN")
if command -v python3 &> /dev/null; then
OPEN_ID=$(echo "$STEP3_RESP" | python3 -c "import sys, json; d=json.load(sys.stdin); print(d.get('data',{}).get('user',{}).get('open_id',''))" 2>/dev/null)
NAME=$(echo "$STEP3_RESP" | python3 -c "import sys, json; d=json.load(sys.stdin); print(d.get('data',{}).get('user',{}).get('name',''))" 2>/dev/null)
else
OPEN_ID=$(echo "$STEP3_RESP" | grep -o '"open_id":"[^"]*"' | head -1 | cut -d'"' -f4)
NAME=$(echo "$STEP3_RESP" | grep -o '"name":"[^"]*"' | head -1 | cut -d'"' -f4)
fi
if [ -z "$OPEN_ID" ]; then
echo "❌ 第三步失败:未找到 open_id。"
echo "返回信息:$STEP3_RESP"
echo "💡 提示:请检查应用是否有【读取用户信息】权限。"
exit 1
fi
echo "--------------------------------------------------"
echo "🎉 查询成功!"
echo "👤 姓名:$NAME"
echo "🆔 User ID: $USER_ID"
echo "🔑 Open ID : $OPEN_ID"
echo "--------------------------------------------------"
修改上述脚本中的 APP_ID、APP_SECRET 和 PHONE_NUMBER,保存为 lark.sh 后执行 sh lark.sh(Windows 用户可使用 PowerShell 或转换脚本)。

拿到 OpenID 后,告知系统你的飞书用户 OpenID 是多少,让它记录下来。

之后即可让系统执行任务,例如生成文章并发送到飞书。



微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online