由于有需要转发验证码的需求,我不想老是被打扰能够自动转发,而且我希望知道每次转发的信息,设置了一个先手动填写飞书表单,才能转发验证码的流程。主要是用在别人借用验证码的情况。水平有限,如果有更好能解决这个问题的办法请告诉我。

准备清单

物品 用途 状态
飞书账号 表单+群通知 必备
Make账号 云端逻辑处理 免费版够用
SMS Forwarder App 安卓短信转发 免费下载

第一部分:飞书配置

1.1 创建多维表格

  1. 打开 飞书多维表格
  2. 点击 新建 → 新建多维表格
  3. 修改表头,创建以下字段(按需创建,但后面读取表格的时候需要主要字段名一致):
字段名 类型 配置说明
申请人 人员 开启"允许添加多个"
使用系统 文本 填写要登录的系统名称
用途说明 文本 填写具体用途
申请时间 日期时间 字段类型选"创建时间",自动记录
状态 单选 选项:待使用、已使用、已过期
  1. 点击右上角   ... → 表单 → 创建表单 
  2. 分享链接,按照你的需求选择分享的对象

1.2 获取多维表格参数

获取 App Token 和 Table ID:

  1. 打开你的多维表格
  2. 看浏览器地址栏:
    https://xxxxx.feishu.cn/base/AbCdEfGh?table=IjKlMnOp
                               ~~~~~~~~     ~~~~~~~~
                               App Token    Table ID
    
  3. App Token 一般是问号前的那些字母
  4. Table ID 一般是table=后面的字母

1.3 创建飞书群机器人

  1. 创建一个专门的飞书群(比如"验证码通知群")
  2. 点击群右上角「...」→「设置」→「群机器人」→「添加机器人」
  3. 选择「自定义机器人」
  4. 填写(可自主命名,不影响):
    • 机器人名称:验证码助手
    • 描述:自动转发短信验证码
  5. 复制 Webhook 地址
    https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    
  6. 保存好这个地址!

1.4 创建飞书应用

这是最关键的一步,Make 需要通过飞书 API 读取表格数据。

步骤:

  1. 访问 飞书开放平台
  2. 点击「创建企业自建应用」
  3. 填写基本信息:
    • 应用名称:验证码转发系统
    • 应用描述:用于读取多维表格申请记录
    • 应用图标:随便上传一个
  4. 点击「确定创建」
  5. 进入应用详情页,点击「凭证与基础信息」
  6. 复制并记录
    • App IDcli_xxxxxxxxxxxxxxxx
    • App Secret:点击显示,复制完整字符串

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. 点击「版本管理与发布」→「创建版本」
    • 版本号:1.0.0
    • 更新说明:初始版本
  2. 点击「申请发布」→「确认发布」
  3. 注意发布后才能使用 API!

第二部分:安卓手机配置 SMS Forwarder

2.1 安装与权限

  1. 下载 SMS Forwarder(短信转发器)
  2. 安装后授予权限:
    • 短信读取权限
    • 通知使用权(用于监听通知类短信)
    • 自启动权限
    • 电池优化白名单

2.2 配置发送通道

  1. 打开 App → 底部「发送通道」→ 右上角「+」
  2. 选择通道类型:Webhook
  3. 填写配置:
配置项
名称 转发到Make
请求方式 POST
Webhook URL 先填占位符https://httpbin.org/post
(等 Make 创建好后再改成真实的 https://hook.make.com/xxx
请求头 Key: Content-Type / Value: application/json
  1. 消息模板(复制粘贴,只发送短信内容):
{{SMS}}

点击「保存」

2.3 配置转发规则

SMS Forwarder 支持多种匹配方式,用于精确控制哪些短信需要转发。

转发规则比较多,可以看下他们在github的官方文档,我这里面是想收到特定号码发来的带有验证码字眼的短信,就设置为:

并且 是 手机号 相等 123456 

并且 是 短信内容 包含 验证码

2.4 保活设置

SMS Forwarder 容易被系统杀掉,必须设置:

  1. 锁定后台

    • 打开多任务界面 → 长按 SMS Forwarder → 选择「锁定」
  2. 电池优化

    • 设置 → 电池 → 电池优化 → 找到 SMS Forwarder → 选择「不优化」
  3. 自启动

    • 设置 → 应用管理 → 自启动管理 → 开启 SMS Forwarder
  4. 忽略电池优化(Android 10+):

    • SMS Forwarder → 设置 → 高级设置 → 忽略电池优化 → 开启

第三部分:Make 配置

3.1 注册与创建场景

  1. 访问 Make(原 Integromat)
  2. 注册账号(可用 Google/邮箱注册)
  3. 登录后点击右上角「Create a new scenario」
  4. 点击中央的「+」开始添加模块

3.2 第一步:添加 Webhook

  1. 搜索模块:Webhook
  2. 选择:Custom webhook
  3. 点击「Add」创建新的 webhook
  4. 命名:SMS-Verification-Webhook
  5. 点击「Save」,复制生成的 URL
    https://hook.make.com/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    
  6. 把这个 URL 填回 SMS Forwarder 的 Webhook 地址!
    https://hook.us2.make.com/6iau5ckcove0lbo4m7kyjyiwgsvjecdx

3.3 第二步:获取飞书 Token

飞书 tenant_access_token 每 2 小时过期,需要先获取才能调用 API:

  1. 点击 Webhook 模块右侧的「+」
  2. 搜索 HTTP,选择 Make a request
  3. 配置:
配置项
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"}
  1. 点击「OK」保存

这个模块会返回一个 JSON,里面包含 tenant_access_token,后续模块通过 {{2.tenant_access_token}} 引用(假设这是第2个模块)。


3.4 第三步:查询飞书表格

  1. 点击获取 Token 模块右侧的「+」
  2. 搜索模块:HTTP
  3. 选择:Make a request
  4. 配置:
配置项
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 第四步:发送到飞书群

  1. 点击查询表格模块右侧的「+」
  2. 搜索:HTTP
  3. 选择:Make a request
  4. 配置:
配置项
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) 两个模块,它们之间有一条连线。过滤器将加在这条连线上。

添加过滤器:

  1. 找到两个模块之间的连线,会显示扳手图标 
  2. 点击扳手图标 → 选择「Set up a filter
  3. 在 Label 框填写过滤器名称:timefiltering

过滤器条件设置(双条件 AND,两个必须同时满足才通过):

条件 配置项
条件① 数据源路径 3.data:data:total
(数值判断) 运算类型 数值运算符 → 大于(Greater than)
对比基准 0
条件② 时间函数 addMinutes(3.Data.data.items[]:fields.申请时间;5)
(时间判断) 运算类型 数值运算符 → 大于(Greater than)
对比基准 now(系统当前实时时间)

3.7 第六步:更新记录状态为"已使用"

防止同一个申请被重复使用:

  1. 再添加一个 HTTP 模块
  2. 配置:
配置项
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次的额度,每一步都算作一次,可以看下日常的额度够用不。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐