第二章:技术选型与环境搭建
2.1 为什么选择飞书+OpenClaw?
在开始动手之前,我们先来理解为什么选择这个技术组合。市面上有那么多自动化工具,为什么偏偏是飞书和OpenClaw?
飞书的优势
1. 企业级生态完善
- 国内企业覆盖率超过50%
- API接口丰富且稳定
- 文档、日历、任务等全生态集成
2. 开发友好
- 详细的官方文档
- 活跃的开发者社区
- 丰富的SDK和工具链
3. 成本优势
- 基础功能完全免费
- 机器人无使用限制
- 适合个人和小团队
4. 用户体验
- 界面友好,客户接受度高
- 移动端体验优秀
- 通知及时可靠
OpenClaw的优势
1. 专为自动化设计
- 原生支持多平台集成
- 强大的工作流引擎
- 灵活的触发器和动作
2. 开发者友好
- 基于Node.js,生态丰富
- 支持自定义技能开发
- 完善的调试工具
3. 开源免费
- MIT许可证,商业友好
- 活跃的社区支持
- 持续更新维护
组合的协同效应
飞书(前端交互层)
↓
OpenClaw(自动化引擎)
↓
你的业务逻辑(Python/Node.js)
↓
数据存储与分析
这个组合就像:
- 飞书是你的"门店" - 接待客户、展示服务
- OpenClaw是你的"店员" - 自动处理常规工作
- 你是"老板" - 专注于战略和复杂问题
2.2 飞书开放平台注册与配置
第一步:注册开发者账号
-
访问飞书开放平台
https://open.feishu.cn -
登录/注册
- 使用你的飞书账号登录
- 如果没有,先注册飞书个人账号
-
创建企业
- 点击"创建企业"
- 填写企业信息(个人使用可填个人名称)
- 完成创建,进入开发者后台
第二步:创建应用
-
点击"创建应用"
- 应用名称:
自动化接单系统(或其他你喜欢的名字) - 应用描述:
基于飞书的智能接单和客户管理系统 - 应用图标:可以上传一个专业图标
- 应用名称:
-
获取凭证
创建成功后,在"凭证与基础信息"页面找到:- App ID:
cli_xxxxxxxxxxxxxx - App Secret:
xxxxxxxxxxxxxxxxxx
重要:立即复制保存,App Secret只显示一次!
- App ID:
第三步:配置权限
进入"权限管理"页面,开通以下权限:
必需权限:
im:message- 接收和发送消息im:message.group:readonly- 读取群消息im:message.p2p_msg:readonly- 读取私聊消息contact:contact.base:readonly- 读取通讯录
推荐权限:
calendar:calendar:readonly- 读取日历task:task:readonly- 读取任务task:task:write- 创建任务drive:drive:readonly- 读取云文档
开通步骤:
- 搜索权限名称
- 点击"申请权限"
- 选择申请原因(填写:用于自动化接单系统)
- 提交申请
第四步:配置事件订阅
进入"事件订阅"页面:
-
设置请求地址
https://你的域名或IP:端口/feishu/webhook本地开发可以用内网穿透工具(如ngrok)
-
添加事件
im.message.receive_v1- 接收消息- 根据需求添加其他事件
-
获取验证信息
Verification Token- 验证令牌Encrypt Key- 加密密钥(可选)
第五步:版本管理与发布
-
创建版本
- 版本号:
1.0.0 - 更新说明:初始版本发布
- 选择可用人员(可以先只给自己)
- 版本号:
-
申请发布
- 提交审核(个人应用通常自动通过)
- 等待审核完成
2.3 OpenClaw安装与基础配置
安装OpenClaw
方法一:npm安装(推荐)
# 安装OpenClaw CLI
npm install -g openclaw-cn
# 验证安装
openclaw-cn --version
方法二:源码安装
# 克隆仓库
git clone https://github.com/openclaw/openclaw.git
cd openclaw
# 安装依赖
npm install
# 构建
npm run build
# 链接到全局
npm link
初始化配置
运行初始化向导:
openclaw-cn onboard
按照提示完成:
- 选择工作模式:
local(本地运行) - 配置模型:选择DeepSeek或其他支持的模型
- 设置工作空间:使用默认或自定义路径
- 完成初始化
配置飞书插件
编辑OpenClaw配置文件:
# 打开配置文件
openclaw-cn config edit
添加飞书配置:
{
"channels": {
"feishu": {
"enabled": true,
"appId": "你的App ID",
"appSecret": "你的App Secret",
"domain": "feishu",
"groupPolicy": "allowlist"
}
}
}
启动网关服务
# 启动网关
openclaw-cn gateway
# 或后台运行
openclaw-cn gateway --daemon
验证网关运行:
# 检查状态
openclaw-cn status
# 或访问健康检查
curl http://localhost:18789/health
2.4 开发环境准备
Python环境
安装Python 3.8+
# macOS
brew install python
# Ubuntu/Debian
sudo apt update
sudo apt install python3 python3-pip
# Windows
# 从官网下载安装包:https://www.python.org/downloads/
验证安装
python3 --version
pip3 --version
项目依赖
创建项目目录并安装依赖:
# 创建项目目录
mkdir feishu-automation-system
cd feishu-automation-system
# 创建虚拟环境
python3 -m venv venv
# 激活虚拟环境
# macOS/Linux
source venv/bin/activate
# Windows
venv\Scripts\activate
# 安装基础依赖
pip install requests flask python-dotenv pandas
代码编辑器配置
VS Code推荐配置:
- 安装Python扩展
- 安装Pylance(语言服务器)
- 配置
.vscode/settings.json:
{
"python.defaultInterpreterPath": "${workspaceFolder}/venv/bin/python",
"python.linting.enabled": true,
"python.linting.pylintEnabled": true,
"python.formatting.provider": "black",
"editor.formatOnSave": true
}
版本控制
初始化Git仓库:
# 初始化
git init
# 创建.gitignore
echo "venv/
__pycache__/
*.pyc
.env
*.log
data/
logs/" > .gitignore
# 首次提交
git add .
git commit -m "初始提交:飞书自动化系统"
环境验证
测试飞书连接
创建测试脚本 test_fishu.py:
import requests
import json
def test_fishu_connection(app_id, app_secret):
"""测试飞书API连接"""
# 获取tenant_access_token
url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal"
headers = {"Content-Type": "application/json"}
data = {
"app_id": app_id,
"app_secret": app_secret
}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
result = response.json()
if result.get("code") == 0:
print("✅ 飞书连接成功!")
print(f"Token: {result.get('tenant_access_token')[:20]}...")
print(f"过期时间: {result.get('expire')}秒")
return True
else:
print(f"❌ 飞书连接失败: {result.get('msg')}")
return False
else:
print(f"❌ HTTP错误: {response.status_code}")
return False
if __name__ == "__main__":
# 从环境变量或配置文件读取
APP_ID = "你的App ID"
APP_SECRET = "你的App Secret"
test_fishu_connection(APP_ID, APP_SECRET)
运行测试:
python test_fishu.py
测试OpenClaw连接
创建测试脚本 test_openclaw.py:
import requests
def test_openclaw_connection():
"""测试OpenClaw网关连接"""
try:
response = requests.get("http://localhost:18789/health", timeout=5)
if response.status_code == 200:
data = response.json()
print("✅ OpenClaw网关连接成功!")
print(f"状态: {data.get('status', 'unknown')}")
print(f"版本: {data.get('version', 'unknown')}")
return True
else:
print(f"❌ OpenClaw网关异常: {response.status_code}")
return False
except requests.exceptions.ConnectionError:
print("❌ 无法连接到OpenClaw网关,请检查是否已启动")
return False
except Exception as e:
print(f"❌ 测试过程中出错: {e}")
return False
if __name__ == "__main__":
test_openclaw_connection()
完整环境检查清单
运行完整检查脚本:
#!/bin/bash
echo "=== 环境检查开始 ==="
# 检查Python
echo -n "Python版本: "
python3 --version
# 检查pip
echo -n "pip版本: "
pip3 --version
# 检查Node.js
echo -n "Node.js版本: "
node --version
# 检查OpenClaw
echo -n "OpenClaw版本: "
openclaw-cn --version 2>/dev/null || echo "未安装"
# 检查网关
echo -n "OpenClaw网关: "
curl -s http://localhost:18789/health 2>/dev/null | grep -q "healthy" && echo "运行中" || echo "未运行"
echo "=== 环境检查结束 ==="
常见问题解决
Q1: 飞书应用审核不通过怎么办?
A: 个人应用通常自动通过。如果被拒:
- 检查应用描述是否清晰
- 确保权限申请理由充分
- 联系飞书客服咨询
Q2: OpenClaw安装失败怎么办?
A: 常见原因和解决:
- Node.js版本过低:升级到v16+
- 权限问题:使用sudo或修改npm全局安装目录权限
- 网络问题:配置npm镜像源
Q3: 本地开发如何接收飞书Webhook?
A: 几种方案:
- 内网穿透:使用ngrok、localtunnel等工具
- 服务器部署:使用云服务器(推荐阿里云/腾讯云轻量应用服务器)
- 飞书开发工具:使用飞书提供的开发工具本地调试
Q4: 环境配置太复杂,有没有简化方案?
A: 本章提供了完整方案。如果你想要快速开始:
- 使用我们提供的Docker镜像(后续章节介绍)
- 使用一键部署脚本(第七章提供)
- 先从基础功能开始,逐步完善
本章小结
通过本章的学习,你应该已经:
- ✅ 理解了技术选型的原因 - 为什么是飞书+OpenClaw
- ✅ 完成了飞书应用配置 - 创建应用、开通权限
- ✅ 安装了OpenClaw - 本地运行环境
- ✅ 准备了开发环境 - Python、编辑器、版本控制
- ✅ 验证了环境连通性 - 确保各组件正常工作
重要提醒:
- 保存好所有凭证(App ID、App Secret等)
- 记录配置过程中的问题和解决方案
- 环境搭建是基础,花时间做好后面会更顺利
在下一章,我们将开始设计系统架构,这是将想法转化为可执行方案的关键一步。你会发现,有了良好的基础,后面的开发会非常顺畅。
动手练习:
- 按照步骤完成飞书应用创建
- 安装并验证OpenClaw运行
- 运行环境检查脚本,确保所有组件正常
- 记录遇到的问题和解决方案
(遇到问题可以在读者群交流,或查看附录的常见问题解答)