小龙虾配置飞书机器人(适合本地部署)

小龙虾配置飞书机器人(适合本地部署)

🚀 OpenClaw 手把手教学:配置飞书机器人

📖 目录

  1. 前置准备
  2. 创建飞书应用
  3. 配置机器人能力
  4. 获取必要凭证
  5. 配置 OpenClaw
  6. 测试机器人

前置准备

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

✅ 必需条件

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

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 配置文件:

在这里插入图片描述


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

步骤 11:重启 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\" }")# 解析 TokenACCESS_TOKEN=$(echo"$TOKEN_RESP"|grep-o'"tenant_access_token":"[^"]*"'|cut -d'"'-f4)if[-z"$ACCESS_TOKEN"];thenecho"❌ 第一步失败:无法获取 Token。"echo"返回信息: $TOKEN_RESP"exit1fiecho"✅ 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 简易解析ifcommand-v python3 &> /dev/null;thenUSER_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# 简易解析 fallbackUSER_ID=$(echo"$STEP2_RESP"|grep-o'"user_id":"[^"]*"'|head-1|cut -d'"'-f4)fiif[-z"$USER_ID"];thenecho"❌ 第二步失败:未找到 user_id。"echo"返回信息: $STEP2_RESP"echo"💡 提示:请检查手机号是否正确,或应用是否有【读取用户手机号】权限。"exit1fiecho"✅ 找到 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_idTARGET_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_idifcommand-v python3 &> /dev/null;thenOPEN_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)elseOPEN_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)fiif[-z"$OPEN_ID"];thenecho"❌ 第三步失败:未找到 open_id。"echo"返回信息: $STEP3_RESP"echo"💡 提示:请检查应用是否有【读取用户信息】权限。"exit1fiecho"--------------------------------------------------"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(如果是win,就把这段代码给到豆包,让它翻译成win 版本的)

在这里插入图片描述


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

在这里插入图片描述


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

在这里插入图片描述
在这里插入图片描述

Read more

基于Vivado的FPGA逻辑设计实战案例解析

以下是对您提供的博文内容进行 深度润色与工程化重构后的技术文章 。全文已彻底去除AI腔调、模板化结构和空泛表述,转而以一位 有十年FPGA开发经验的嵌入式系统工程师+高校课程主讲人 的真实口吻重写——语言更自然、逻辑更递进、细节更扎实、陷阱更具体,并强化了“为什么这么做”的底层原理与实战权衡。 一个同步FIFO,带你看懂Vivado全流程:不是教程,是踩坑笔记 “刚在Vivado里点完‘Generate Bitstream’,板子一上电,LED不亮、ILA没波形、串口吐乱码……你不是代码写错了,是整个设计链路中某处‘隐性假设’崩了。” ——这是我给新同事讲Vivado时,第一堂课必放的截图:一个红框标出的 Timing Summary: 123 paths failed 。 这不是一篇“手把手教你新建工程”的入门指南。它是一份 从实验室原型走向工业可用系统的实战备忘录 ,主角是一个只有200行Verilog的同步FIFO控制器。但它背后串起了Vivado里最常被忽略、却最致命的五个断点: - 工程创建时 -part 填错型号,

基于STM32的智能家居安防系统设计与实现(完整项目)

基于STM32的智能家居安防系统设计与实现(完整项目)

基于STM32的智能家居安防系统设计与实现 摘要 随着物联网技术、嵌入式技术和智能控制技术的快速发展,智能家居安防系统逐渐成为现代家庭生活的重要组成部分,其能够实时监测家庭环境安全状态、防范安全隐患,为居民提供安全、便捷、舒适的居住环境。传统家庭安防方式多采用单一设备监测,存在功能分散、监测不全面、无法远程管控、报警响应滞后等问题,难以满足现代家庭对安防的多元化、智能化需求。 本文设计并实现了一套基于STM32F103C8T6单片机的智能家居安防系统,整合密码锁、温湿度采集、煤气烟雾检测、火灾报警、防盗报警、远程照明控制、实时时钟显示、OLED本地显示、WiFi手机APP远程监控、APP远程时间修改、本地蜂鸣器报警与远程报警联动等11项核心功能,构建了完整的智能家居安防系统架构。系统以STM32F103C8T6为核心控制单元,搭载密码锁模块、温湿度传感器、煤气烟雾传感器、火焰传感器、人体红外/门磁传感器、蜂鸣器报警模块、LED照明模块、实时时钟模块、OLED显示模块及WiFi通信模块,通过多模块协同工作,实现家庭安防的全方位监测、本地与远程双重管控,兼顾安全性、便捷性和实用性。

从低代码到Vibe Coding,速度如何变成资产与交付能力

从低代码到 Vibe Coding,开发入口变得更自然。很多研发不再从脚手架与目录结构起步,更常见的起点是先用自然语言说清楚目标,再由 AI编程 生成初版,然后用运行结果做快速校验。 Vibe Coding 把节奏推快了。Trae、Qoder 这类工具把检索、生成、改写、解释、测试串成一条对话链路,原型验证更快,项目推进也更像连续试验。 节奏变快以后,交付压力不会消失,只会更早露面。黑盒、AI幻觉、依赖库漂移、框架用法不一致、审查疲劳,这些都会跟着出现。问题不在 Vibe Coding,本质在结构能不能接住高频变更。 低代码这些年走出了不同路线。有人做的是更快的搭建,有人做的是流程与集成,也有人更接近工程底座,关注标准化研发、个性化定制与项目交付的长期并行。 Oinone 是低代码底座,也是企业级产品化引擎:用低代码驱动标准化研发与敏捷交付的一体化平台。很多讨论会回到几个朴素问题。AI编程 生成得再快,产出如何形成资产沉淀,升级与定制如何并行,

linux中从零开始,将OpenClaw 接入 QQ 机器人

linux中从零开始,将OpenClaw 接入 QQ 机器人

Linux 从零开始:将 OpenClaw 接入 QQ 机器人 本文提供完整的 OpenClaw 安装和 QQ 机器人接入指南,适用于 Debian 12 系统,模型使用华为云提供MAAS 📋 目录 1. 系统准备 2. 安装 OpenClaw 3. 配置 QQ 机器人 4. 测试与验证 5. 常见问题 🚀 系统准备 环境要求 * 操作系统:Debian 12(其他 Linux 发行版类似) * 用户权限:root 用户 * 网络:可正常访问外部网络 1.1 SSH 配置(可选) 如需通过