飞书+Make+SMS 核验后验证码自动转发(无服务器版)- 保姆级教程
由于有需要转发验证码的需求,我不想老是被打扰能够自动转发,而且我希望知道每次转发的信息,设置了一个先手动填写飞书表单,才能转发验证码的流程。主要是用在别人借用验证码的情况。水平有限,如果有更好能解决这个问题的办法请告诉我。
准备清单
| 物品 | 用途 | 状态 |
|---|---|---|
| 飞书账号 | 表单+群通知 | 必备 |
| Make账号 | 云端逻辑处理 | 免费版够用 |
| SMS Forwarder App | 安卓短信转发 | 免费下载 |
第一部分:飞书配置
1.1 创建多维表格
- 打开 飞书多维表格
- 点击 新建 → 新建多维表格
- 修改表头,创建以下字段(按需创建,但后面读取表格的时候需要主要字段名一致):
| 字段名 | 类型 | 配置说明 |
|---|---|---|
| 申请人 | 人员 | 开启"允许添加多个" |
| 使用系统 | 文本 | 填写要登录的系统名称 |
| 用途说明 | 文本 | 填写具体用途 |
| 申请时间 | 日期时间 | 字段类型选"创建时间",自动记录 |
| 状态 | 单选 | 选项:待使用、已使用、已过期 |
- 点击右上角 ... → 表单 → 创建表单
- 分享链接,按照你的需求选择分享的对象
1.2 获取多维表格参数
获取 App Token 和 Table ID:
- 打开你的多维表格
- 看浏览器地址栏:
https://xxxxx.feishu.cn/base/AbCdEfGh?table=IjKlMnOp ~~~~~~~~ ~~~~~~~~ App Token Table ID - App Token 一般是问号前的那些字母
- Table ID 一般是table=后面的字母
1.3 创建飞书群机器人
- 创建一个专门的飞书群(比如"验证码通知群")
- 点击群右上角「...」→「设置」→「群机器人」→「添加机器人」
- 选择「自定义机器人」
- 填写(可自主命名,不影响):
- 机器人名称:
验证码助手 - 描述:
自动转发短信验证码
- 机器人名称:
- 复制 Webhook 地址:
https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - 保存好这个地址!
1.4 创建飞书应用
这是最关键的一步,Make 需要通过飞书 API 读取表格数据。
步骤:
- 访问 飞书开放平台
- 点击「创建企业自建应用」
- 填写基本信息:
- 应用名称:
验证码转发系统 - 应用描述:
用于读取多维表格申请记录 - 应用图标:随便上传一个
- 应用名称:
- 点击「确定创建」
- 进入应用详情页,点击「凭证与基础信息」
- 复制并记录:
- App ID:
cli_xxxxxxxxxxxxxxxx - App Secret:点击显示,复制完整字符串
- App ID:
7. 点击左侧「权限管理」,选择【应用身份权限】
┌─────────────────────────────────────────────────────────────┐
│ 应用身份权限 tenant_access_token ✅ 选这个 │
│ 用户身份权限 user_access_token │
└─────────────────────────────────────────────────────────────┘
添加以下权限(在"多维表格"分类下,共 11 个,全部勾选):
| 序号 | 权限名称 | 权限标识 |
|---|---|---|
| 1 | 获取多维表格信息 | base:app:read |
| 2 | 更新多维表格 | base:app:update |
| 3 | 新增协作者 | base:collaborator:create |
| 4 | 列出协作者 | base:collaborator:read |
| 5 | 新增字段 | base:field:create |
| 6 | 获取字段信息 | base:field:read |
| 7 | 更新字段 | base:field:update |
| 8 | 新增记录 | base:record:create |
| 9 | 检索特定记录 | base:record:read |
| 10 | 根据条件搜索记录 | base:record:retrieve |
| 11 | 更新记录 | base:record:update |
- 点击「版本管理与发布」→「创建版本」
- 版本号:1.0.0
- 更新说明:初始版本
- 点击「申请发布」→「确认发布」
- 注意发布后才能使用 API!
第二部分:安卓手机配置 SMS Forwarder
2.1 安装与权限
- 下载 SMS Forwarder(短信转发器)
- 酷安搜索下载,或 GitHub: Releases · pppscn/SmsForwarder · GitHub
- 安装后授予权限:
- 短信读取权限
- 通知使用权(用于监听通知类短信)
- 自启动权限
- 电池优化白名单
2.2 配置发送通道
- 打开 App → 底部「发送通道」→ 右上角「+」
- 选择通道类型:
Webhook - 填写配置:
| 配置项 | 值 |
|---|---|
| 名称 | 转发到Make |
| 请求方式 | POST |
| Webhook URL | 先填占位符:https://httpbin.org/post(等 Make 创建好后再改成真实的 https://hook.make.com/xxx) |
| 请求头 | Key: Content-Type / Value: application/json |
- 消息模板(复制粘贴,只发送短信内容):
{{SMS}}
点击「保存」
2.3 配置转发规则
SMS Forwarder 支持多种匹配方式,用于精确控制哪些短信需要转发。
转发规则比较多,可以看下他们在github的官方文档,我这里面是想收到特定号码发来的带有验证码字眼的短信,就设置为:
并且 是 手机号 相等 123456
并且 是 短信内容 包含 验证码
2.4 保活设置
SMS Forwarder 容易被系统杀掉,必须设置:
-
锁定后台:
- 打开多任务界面 → 长按 SMS Forwarder → 选择「锁定」
-
电池优化:
- 设置 → 电池 → 电池优化 → 找到 SMS Forwarder → 选择「不优化」
-
自启动:
- 设置 → 应用管理 → 自启动管理 → 开启 SMS Forwarder
-
忽略电池优化(Android 10+):
- SMS Forwarder → 设置 → 高级设置 → 忽略电池优化 → 开启
第三部分:Make 配置
3.1 注册与创建场景
- 访问 Make(原 Integromat)
- 注册账号(可用 Google/邮箱注册)
- 登录后点击右上角「Create a new scenario」
- 点击中央的「+」开始添加模块
3.2 第一步:添加 Webhook
- 搜索模块:
Webhook - 选择:
Custom webhook - 点击「Add」创建新的 webhook
- 命名:
SMS-Verification-Webhook - 点击「Save」,复制生成的 URL:
https://hook.make.com/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - 把这个 URL 填回 SMS Forwarder 的 Webhook 地址!
https://hook.us2.make.com/6iau5ckcove0lbo4m7kyjyiwgsvjecdx
3.3 第二步:获取飞书 Token
飞书 tenant_access_token 每 2 小时过期,需要先获取才能调用 API:
- 点击 Webhook 模块右侧的「+」
- 搜索
HTTP,选择Make a request - 配置:
| 配置项 | 值 |
|---|---|
| Authentication type | No authentication |
| URL | https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal |
| Method | POST |
| Body content type | application/json |
| Body input method | JSON string |
| Body content | {"app_id": "你的AppID", "app_secret": "你的AppSecret"} |
- 点击「OK」保存
这个模块会返回一个 JSON,里面包含 tenant_access_token,后续模块通过 {{2.tenant_access_token}} 引用(假设这是第2个模块)。
3.4 第三步:查询飞书表格
- 点击获取 Token 模块右侧的「+」
- 搜索模块:
HTTP - 选择:
Make a request - 配置:
| 配置项 | 值 |
|---|---|
| Authentication type | No authentication (飞书用 Bearer Token,在 Headers 里手动加) |
| URL | https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records?filter=CurrentValue.[状态]=%22待使用%22&page_size=1&sort=%5B%22申请时间%20desc%22%5D |
| Method | GET |
| Headers | Key: Authorization / Value: Bearer {{2.data.tenant_access_token}} |
注意:把 {app_token} 和 {table_id} 替换成你之前记录的
3.5 第四步:发送到飞书群
- 点击查询表格模块右侧的「+」
- 搜索:
HTTP - 选择:
Make a request - 配置:
| 配置项 | 值 |
|---|---|
| Authentication type | No authentication (飞书机器人 Webhook 不需要认证) |
| URL | 你的飞书机器人 Webhook 地址 |
| Method | POST |
| Body content type | application/json |
| Body input method | JSON string |
| Body content | 见下方 JSON |
Body 内容:
{
"msg_type": "text",
"content": {
"text": "验证码:\n{{1.content}}"
}
}
3.6 第五步:添加过滤器
目前的查询只过滤了"状态=待使用",没有过滤时间。需要增加过滤器,确保只转发5分钟有效期内提交的申请。
前提:你已经创建了 查询表格(模块3) 和 发送飞书群(模块4) 两个模块,它们之间有一条连线。过滤器将加在这条连线上。
添加过滤器:
- 找到两个模块之间的连线,会显示扳手图标
- 点击扳手图标 → 选择「Set up a filter」
- 在 Label 框填写过滤器名称:
timefiltering
过滤器条件设置(双条件 AND,两个必须同时满足才通过):
| 条件 | 配置项 | 值 |
|---|---|---|
| 条件① | 数据源路径 | 3.data:data:total |
| (数值判断) | 运算类型 | 数值运算符 → 大于(Greater than) |
| 对比基准 | 0 |
|
| 条件② | 时间函数 | addMinutes(3.Data.data.items[]:fields.申请时间;5) |
| (时间判断) | 运算类型 | 数值运算符 → 大于(Greater than) |
| 对比基准 | now(系统当前实时时间) |
3.7 第六步:更新记录状态为"已使用"
防止同一个申请被重复使用:
- 再添加一个 HTTP 模块
- 配置:
| 配置项 | 值 |
|---|---|
| Authentication type | No authentication |
| URL | https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/{{3.data.items[0].record_id}} |
| Method | PUT |
| Headers | Key: Authorization / Value: Bearer {{2.data.tenant_access_token}} |
| Body content type | application/json |
| Body input method | JSON string |
| Body content | {"fields": {"状态": "已使用"}} |
4 总结
然后,就可以先测试一下,Make 场景点击Run once(单次运行模式),确保 SMS Forwarder 已启动。不填表发验证码和填表发验证码都测试一下试试,还有就是设置的5分钟之内填写表答案才有效,这个也测试一下。
如果都没问题的话就可以在Make 点击右上角「Scheduling」→ 开启「On」,可以正常使用了。但是免费版的make一个月应该是只有1000次的额度,每一步都算作一次,可以看下日常的额度够用不。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)