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

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

本教程详解如何在本地部署环境下配置 OpenClaw 对接飞书机器人。涵盖应用创建、权限申请、凭证获取及 OpenID 查询脚本的使用。通过简单的 Shell 脚本即可获取用户唯一标识,完成单向消息推送测试,实现 AI 助手与飞书的集成交互。

深海蔚蓝发布于 2026/4/5更新于 2026/10/2595 浏览
OpenClaw 本地部署飞书机器人配置指南

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

前置准备

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

必需条件
  • 飞书管理员权限:需要创建企业自建应用的权限,或联系管理员协助创建。
  • OpenClaw 已安装:检查是否已安装 openclaw --version。
准备清单
  • OpenClaw 已安装并运行
  • 有飞书企业管理员权限
  • 基本的命令行操作能力

创建飞书应用

进入飞书开放平台
  1. 打开浏览器,访问飞书开放平台。
  2. 使用飞书账号登录。
  3. 点击右上角'开发者后台'。
创建企业自建应用
  1. 点击'创建企业自建应用'。
  2. 填写应用信息:
    • 应用名称:OpenClaw AI 助手(可自定义)
    • 应用描述:基于 OpenClaw 的 AI 智能助手(可自定义)
    • 应用图标:上传一个喜欢的图标(建议 120x120)
  3. 点击'创建'。
记录应用信息

创建成功后,你会看到:

App ID: cli_xxxxxxxxxxxxxxxx
App Secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

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

配置机器人能力

启用机器人功能

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

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

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

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

获取必要凭证

获取 App ID 和 App Secret
  1. 在应用详情页,点击左侧'凭证与基础信息'。
  2. 你会看到:
    App ID: cli_xxx
    App Secret: xxxxx
    
    这就是开发者应用的凭证,也是对应机器人的凭证。

配置 OpenClaw

创建配置文件

编辑 OpenClaw 配置文件,或者直接通过对话配置。例如:'我正在配置飞书,对应的开发者应用 appid 是 xxx, appSecret 是 xxx ,帮我配置一下'。

重启 OpenClaw
# 重启服务
openclaw gateway
# 检查状态
openclaw status

预期输出:

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

测试机器人

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

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

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

我们可以用下面的脚本查询。修改其中的 3 个配置项:

  • APP_ID="cli_xxx"
  • APP_SECRET="xxx"
  • PHONE_NUMBER="xxxx" # 替换为你要查询的手机号 (不需要加 +86,接口通常自动识别或根据企业设置,若报错可尝试 "+86156...")

然后保存为 get_openid.sh。执行 sh get_openid.sh(如果是 Windows,可以把这段代码给到 AI 工具翻译成 Windows 版本)。

#!/bin/bash
# =================🔧 配置区域 (请修改这里) =================
APP_ID="cli_xxx"
APP_SECRET="xxx"
PHONE_NUMBER="xxxx"
# =======================================================
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..."
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
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")

# 解析 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 "--------------------------------------------------"

拿到 openid 之后,告诉小龙虾,你的飞书用户 openid 是这个。让它记下来。

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

至此,配置完成。

目录

  1. OpenClaw 本地部署飞书机器人配置指南
  2. 前置准备
  3. 必需条件
  4. 准备清单
  5. 创建飞书应用
  6. 进入飞书开放平台
  7. 创建企业自建应用
  8. 记录应用信息
  9. 配置机器人能力
  10. 启用机器人功能
  11. 配置权限
  12. 发布版本(重要)
  13. 获取必要凭证
  14. 获取 App ID 和 App Secret
  15. 配置 OpenClaw
  16. 创建配置文件
  17. 重启 OpenClaw
  18. 重启服务
  19. 检查状态
  20. 测试机器人
  21. =================🔧 配置区域 (请修改这里) =================
  22. =======================================================
  23. --- 第一步:获取 tenantaccesstoken ---
  24. 解析 Token
  25. --- 第二步:通过手机号获取 user_id ---
  26. 解析 user_id
  27. --- 第三步:通过 userid 获取 openid ---
  28. 解析 open_id

更多推荐文章

查看全部
  • LLaMA-Factory 本地部署与安装配置指南
  • jQuery 核心知识详解:语法、DOM 操作与插件使用
  • 基于 Coze 构建专属 AI 应用:从智能体到 Web 部署实战
  • 易语言核心自动化场景实战:办公、测试、数据抓取与游戏脚本开发
  • 企业级 AI 大模型选型指南与应用探索
  • Visual Studio 2026 GitHub Copilot Agent 模式解析
  • Python 动态爬虫实战:破解美团商家评论加密与反爬机制
  • Google AI Studio 使用指南:界面与参数配置详解
  • 基于 DeepSeek API 的贪吃蛇游戏开发实践
  • Anaconda 版本查看、Python 版本对应关系及国内镜像配置指南
  • PyTorch 2.8 镜像实测:RTX 4090D 运行 Stable Diffusion 3.5 性能与一致性
  • 基于 JSP+Servlet+MySQL 的在线电影院订票系统设计
  • HarmonyOS TaskPool 多线程开发实战与避坑指南
  • 机械臂关节空间轨迹规划的 B 样条算法实现
  • OpenAI 指控 DeepSeek 非法蒸馏,字节发布 Seedance 2.0,Java 26 预览版上线
  • C++ const 完整语法整理
  • AI 创作入门:普通人如何通过互动实现成长
  • Stable Diffusion v4.10 与 ComfyUI 整合包技术说明
  • 基于原生 Map 构建前端数据层原型方案
  • 基于 SpringBoot 的游戏账号在线交易系统设计与实现

相关免费在线工具

  • 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