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

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

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

深海蔚蓝发布于 2026/4/5更新于 2026/7/2238 浏览
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
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • 产品经理理解前端后端数据库——用产品语言解析技术架构
  • AIGC 时代:利用大模型辅助编程入门与实践
  • 运维人员学习 Python 的必要性及语言对比分析
  • 源码运行 RagFlow 实现 AI 搜索与智能体编排
  • ChatTTS WebUI 界面定制:修改主题、快捷键与配置导出
  • 使用 Linux 命名管道 (FIFO) 实现无血缘关系进程间通信
  • 傅里叶变换:FFT 与 DFT 原理及算法
  • Qwen3.5-4B 微调实战:基于 LLaMA-Factory 构建医疗 AI 助手
  • JavaScript 中 array.map() 的实战用法:数据转换、异步处理与 DOM 操作
  • F5 刷新时浏览器前端发生了什么
  • FAST_LIO 与 FAST_LIO2 算法复现指南
  • 零代码上手!用 Rokid 灵珠平台,5 步搭建专属旅游 AR 智能体
  • 在 IntelliJ IDEA 中使用飞算 AI 的实操记录
  • 哈希表核心原理:冲突处理与 C++ 实战实现
  • C++ 继承机制详解:从基础到多继承模型
  • KingbaseES ksql 事务管理与 ACID 特性详解
  • 基于 Leaflet-Trackplayer 的 WebGIS 高速轨迹可视化实战
  • 基于 CodeBuddy 与腾讯混元开发 AI 识菜通应用
  • Net-NTLMv2 哈希的捕获与破解
  • LLaMA Factory 多模态微调实践

相关免费在线工具

  • 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