跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / BashAI

OpenClaw 本地部署配置飞书机器人指南

如何在本地部署环境下配置 OpenClaw 与飞书机器人的集成。主要步骤包括:在飞书开放平台创建企业自建应用,配置必要的 API 权限并发布版本;获取 App ID 和 App Secret 凭证;在 OpenClaw 中完成配置并重启服务;最后通过 Shell 脚本调用飞书 API 获取目标用户的 OpenID,以便机器人能够向指定飞书用户发送单向消息推送。

魔尊发布于 2026/4/6更新于 2026/7/2348 浏览
OpenClaw 本地部署配置飞书机器人指南

OpenClaw 配置飞书机器人

前置准备

在开始之前,请确保你具备以下条件:

必需条件
  • 飞书管理员权限
    • 需要创建企业自建应用的权限
    • 或联系管理员协助创建

OpenClaw 已安装

# 检查是否已安装 openclaw --version
准备清单
  • OpenClaw 已安装并运行
  • 有飞书企业管理员权限
  • 基本的命令行操作能力

创建飞书应用

步骤 1:进入飞书开放平台
  1. 打开浏览器,访问 飞书开放平台
  2. 使用飞书账号登录

点击右上角'开发者后台'

图片描述

步骤 2:创建企业自建应用
  1. 点击'创建企业自建应用'
  2. 填写应用信息:
    • 应用名称:OpenClaw AI 助手(可自定义)
    • 应用描述:基于 OpenClaw 的 AI 智能助手(可自定义)
    • 应用图标:上传一个喜欢的图标(建议 120x120)

点击'创建'

图片描述

步骤 3:记录应用信息

图片描述

创建成功后,你会看到:

App ID: cli_xxxxxxxxxxxxxxxx App Secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 

⚠️ 重要:立即保存这两个值,后面会用到!

配置机器人能力

步骤 4:启用机器人功能

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

图片描述

步骤 5:配置权限
  1. 点击左侧'权限管理'
  2. 搜索并添加以下权限:
权限名称权限标识用途
获取与发送单聊、群组消息im:message接收和发送消息
获取用户基本信息contact:user.base:readonly获取用户信息
获取群组信息im:chat:readonly获取群聊信息
发送富文本消息im:message:send_as_bot以机器人身份发送消息

点击'批量添加'→'确认'

图片描述

步骤 6:发布版本(重要)
  1. 点击左侧'版本管理与发布'
  2. 点击'创建版本'
  3. 填写版本信息:
    • 版本号:1.0.0
    • 更新说明:首次发布,支持基础对话功能
  4. 点击'保存'
  5. 点击'申请发布'
  6. 等待管理员审批(通常几分钟内)

获取必要凭证

步骤 7:获取 App ID 和 App Secret
  1. 在应用详情页,点击左侧'凭证与基础信息'

你会看到:

App ID: cli_xxx App Secret: xxxxx 

就是前面保存的。这个是开发者应用的凭证。其实也是对应机器人的凭证。

配置 OpenClaw

步骤 8:创建配置文件

编辑 OpenClaw 配置文件:

图片描述

或者直接和 OpenClaw 对话配置:我正在配置飞书,对应的开发者应用 appid 是 xxx, appSecret 是 xxx ,帮我配置一下

步骤 9:重启 OpenClaw
# 重启服务 openclaw gateway
# 检查状态 openclaw status

预期输出:

✓ OpenClaw 运行中 ✓ Gateway: http://0.0.0.0:18789 ✓ 飞书通道:已连接 

测试机器人

由于本地部署无法实现双向交流(其实也可以通过 ngrok 实现,但是不安全),所以这里是实现单项推送。

首先我们已经配置好了机器人和开发者应用的信息。那么怎么让机器人给我们的飞书发送消息呢。

首先每个飞书在每个开发者应用中,都有一个唯一的 openid(同一个飞书用户在不同的应用下 openid 不同),所以我们需要获取在对应应用下的 openid。正常我们是看不到的,需要通过接口获取。

#!/bin/bash
# =================🔧 配置区域 (请修改这里) =================
APP_ID="cli_xxx"
APP_SECRET="xxx"
PHONE_NUMBER="xxxx" # 替换为你要查询的手机号 (不需要加 +86,接口通常自动识别或根据企业设置,若报错可尝试 "+86156...")
# =======================================================
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\" }")
# 解析 Token
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..."
# 注意:根据你的案例,mobiles 数组直接传字符串即可
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\" ] }")
# 解析 user_id (从 data.user_list[0].user_id 中提取)
# 使用 python 解析更稳妥,如果没装 python 则用 grep/sed 简易解析
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
    # 简易解析 fallback
    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..."
# 构造 URL: .../users/{user_id}?department_id_type=open_department_id&user_id_type=user_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")
# 解析 open_id
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 "--------------------------------------------------"

修改上面的 3 个配置: APP_ID='cli_xxx' APP_SECRET='xxx' PHONE_NUMBER='xxxx' # 替换为你要查询的手机号 (不需要加 +86,接口通常自动识别或根据企业设置,若报错可尝试 '+86156…')
然后保存为 lark.sh。然后 sh lark.sh(Windows 用户可使用 PowerShell 或 WSL 运行脚本)

图片描述

拿到 openid 之后,告知 OpenClaw,你的飞书用户 openid 是这个。让它记下来。

图片描述

然后就可以告诉 OpenClaw 做一些事情了,比如写一篇最新的育儿文章,然后发到你的飞书。

图片描述

图片描述

目录

  1. OpenClaw 配置飞书机器人
  2. 前置准备
  3. 必需条件
  4. 检查是否已安装 openclaw --version
  5. 准备清单
  6. 创建飞书应用
  7. 步骤 1:进入飞书开放平台
  8. 步骤 2:创建企业自建应用
  9. 步骤 3:记录应用信息
  10. 配置机器人能力
  11. 步骤 4:启用机器人功能
  12. 步骤 5:配置权限
  13. 步骤 6:发布版本(重要)
  14. 获取必要凭证
  15. 步骤 7:获取 App ID 和 App Secret
  16. 配置 OpenClaw
  17. 步骤 8:创建配置文件
  18. 步骤 9:重启 OpenClaw
  19. 重启服务 openclaw gateway
  20. 检查状态 openclaw status
  21. 测试机器人
  22. =================🔧 配置区域 (请修改这里) =================
  23. =======================================================
  24. --- 第一步:获取 tenantaccesstoken ---
  25. 解析 Token
  26. --- 第二步:通过手机号获取 user_id ---
  27. 注意:根据你的案例,mobiles 数组直接传字符串即可
  28. 解析 userid (从 data.userlist[0].user_id 中提取)
  29. 使用 python 解析更稳妥,如果没装 python 则用 grep/sed 简易解析
  30. --- 第三步:通过 userid 获取 openid ---
  31. 构造 URL: .../users/{userid}?departmentidtype=opendepartmentid&useridtype=userid
  32. 解析 open_id
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • C++核心特性解析:函数重载、引用、内联函数、auto 与 nullptr
  • SpringBoot + Vue 构建 Python 在线调试器方案
  • Unitree SDK2 Python 完整配置与使用指南
  • AgentDoG: 面向 AI 智能体安全与防护的诊断护栏框架
  • C++ 二叉搜索树简单实现:增删查改全攻略
  • JNI 开发:C++ Debug 正常 Release 返回 NaN 原因解析
  • GitHub Copilot Pro 学生免费权益获取与 VS Code 配置指南
  • OpenCode 开源 AI 编程助手:从入门到精通
  • Logseq 本地部署与 cpolar 远程访问配置指南
  • 基于 YOLO 与 LLM 的 Web 目标检测与智能分析系统
  • Web 团队开发 App:是否应该选择 Capacitor
  • Linux 进程控制详解
  • OpenClaw 龙虾机器人 Windows 系统部署指南
  • BR8654 蓝牙 6.0 SOC 芯片技术规格与特性
  • ClawX 可视化 AI 智能体使用指南
  • Claude Code 跨平台安装与配置指南(Win/Linux/Mac)
  • OpenClaw Web Search 配置与渠道选择指南
  • C++ 嵌入 Python 调用实战:Py_Initialize 初始化与函数交互
  • GESP 2025 年 12 月 C++ 五级认证真题解析(单选 1-15)
  • 龙年 AI 生成封面图片玩法与变现指南

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online