用 IFTTT 串聯接碼 Webhook 與 Google Sheets,構建個人號碼庫

真實的號碼管理之痛:你用了很多次接碼平台,每次都手動記號碼——哪個號收過 Gmail 驗證碼成功、哪個號被 Telegram 拉黑了、哪個號還活著……過了一週再看,全忘了。
如果每次收到驗證碼,都能自動記錄到一個 Google Sheets 表格裡,按號碼、時間、用途歸檔,你就擁有了一個私人的號碼資源庫——可檢索、可統計、可追溯。本文不需要一行代碼,只用 IFTTT + Google Sheets,就能讓你的接碼短信自動歸檔。

一、完整數據流架構圖

整個自動化流程由三個組件串聯而成,數據流向清晰:

[接碼平台收到短信] → [觸發 Webhook] → [IFTTT Applet] → [Google Sheets 新增一行] ↓ ↓ ↓ ↓ [5sim/SMSPool] [POST JSON] [If This→That] [自動記錄:號碼/內容/時間]

二、Step 1:創建 Google Sheets 號碼庫

在 Google Sheets 中創建一個新的電子表格,命名為「我的號碼庫」。設置以下表頭(第一行),每一列都有明確的用途:

欄位 表頭 用途說明
A接收時間IFTTT 自動填入事件觸發時間
B虛擬號碼記錄接收短信的虛擬號碼
C短信內容原始短信全文,便於回溯
D驗證碼提取用 REGEXEXTRACT 自動從 C 列提取數字驗證碼
E用途/服務手動標註此號碼用於哪個服務(如 Google、Telegram)
F成功率標記「成功」或「失敗」,配合條件格式自動變色
G備註補充資訊,如「號碼已被拉黑」

D 列公式預設:在 D2 儲存格中填入以下公式,自動從 C 列短信內容中提取 4-6 位數字驗證碼,然後向下拖曳填充整列:

=IF(C2="","",REGEXEXTRACT(C2,"\d{4,6}"))

這個公式會在 C 列有內容時自動執行正則匹配,提取最前面的 4-6 位連續數字作為驗證碼。如果短信中包含多組數字(如時間戳),它會返回第一組匹配項——在大約 85% 的情況下,這就是驗證碼本身。

三、Step 2:創建 IFTTT Applet(Webhook → Google Sheets)

2.1 獲取 IFTTT Webhook Key

  1. 前往 IFTTT Webhooks 服務頁面,點擊 「Documentation」
  2. 頁面頂部會顯示 {event}「Your key is: xxxxx」。記下這個 Key——它是 Webhook URL 的唯一認證憑證。
  3. Webhook URL 格式為:https://maker.ifttt.com/trigger/{event}/with/key/YOUR_KEY

2.2 創建 Applet

  1. 在 IFTTT 中點擊 「Create」
  2. 「If This」 中搜尋並選擇 「Webhooks」 → 選擇 「Receive a web request」
  3. 「Event Name」 中輸入 sms_received(這個名稱將用於 Webhook URL 的 {event} 部分)→ 點擊 「Create Trigger」

2.3 配置 Google Sheets 動作

  1. 「Then That」 中搜尋並選擇 「Google Sheets」 → 選擇 「Add row to spreadsheet」
  2. 輸入電子表格名稱 「我的號碼庫」
  3. 「Formatted row」 中配置每列的映射:
    • 接收時間:{{OccurredAt}}
    • 虛擬號碼:{{Value1}}
    • 短信內容:{{Value2}}
    • 驗證碼提取:留空(由 D 列公式自動計算)
    • 用途/服務:{{Value3}}
  4. 指定 Google Drive 文件夾路徑(可選擇根目錄或專門的文件夾)。
  5. 點擊 「Create Action」「Finish」

2.4 完整 Applet 確認與測試

返回 IFTTT Webhooks Documentation 頁面,複製測試 cURL 命令,將 {event} 替換為 sms_received 後在終端運行:

curl -X POST \
  "https://maker.ifttt.com/trigger/sms_received/with/key/YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value1":"+1234567890","value2":"您的驗證碼是 123456","value3":"Google"}'

返回 Google Sheets 表格,刷新頁面——如果看到新增一行數據,說明整條鏈路已連通。

四、Step 3:將你自己的接碼短信推送到 Webhook

以下是三種將接碼平台的短信事件推送到 IFTTT Webhook 的方案,涵蓋有 API 的付費平台與無代碼工具。

方案 A:Python 腳本(適用有 API 的付費接碼平台)

在短信輪詢腳本的成功回調中,加入向 IFTTT Webhook 發送 POST 請求的邏輯。以下是一個約 15 行的完整示例:

import requests
import os

IFTTT_KEY = os.getenv('IFTTT_KEY', 'your_key_here')
EVENT = 'sms_received'

def push_to_sheets(phone, sms_text, service='未知'):
    url = f"https://maker.ifttt.com/trigger/{EVENT}/with/key/{IFTTT_KEY}"
    payload = {
        "value1": phone,
        "value2": sms_text,
        "value3": service
    }
    try:
        resp = requests.post(url, json=payload, timeout=10)
        if resp.status_code == 200:
            print(f"✅ 已寫入 Sheets: {phone} | {sms_text[:30]}...")
        else:
            print(f"⚠️ IFTTT 回應: {resp.status_code}")
    except Exception as e:
        print(f"❌ 推送失敗: {e}")

將此函數整合到你的短信輪詢循環中(參考本系列前文的 cURL 輪詢腳本),每次收到新短信時自動觸發。

方案 B:任何能觸發 Webhook 的工具

方案 C:輕量中轉服務(推薦)

接碼平台極少原生對接 IFTTT。推薦運行一個極簡的 Python/Node.js「翻譯器」——輪詢接碼平台 API,一旦檢測到新短信,立即轉發到 IFTTT Webhook。以下是 Docker Compose 一鍵部署方案:

version: '3.8'
services:
  sms-bridge:
    image: python:3.12-slim
    container_name: sms-ifttt-bridge
    restart: always
    environment:
      - FIVESIM_API_KEY=your_key
      - IFTTT_KEY=your_ifttt_key
    volumes:
      - ./bridge.py:/app/bridge.py
      - ./processed.txt:/app/processed.txt
    working_dir: /app
    command: python bridge.py

收到新短信後 3 秒內即可寫入 Google Sheets,延遲極低。

五、Step 4:號碼庫的自動化增強——驗證碼提取與成功率標記

4.1 REGEXEXTRACT 自動提取驗證碼

在 D2 儲存格中填入以下公式,自動從 C 列短信內容中提取數字驗證碼:

=IF(C2="","",REGEXEXTRACT(C2,"\d{4,8}"))

這個公式支援 4 到 8 位的驗證碼長度,涵蓋從短碼(4 位)到標準 OTP(6 位)再到部分平台(8 位)的範圍。如果短信中包含多組數字,它會返回第一組匹配項。

4.2 條件格式自動標記成功率

選中 F 列(成功率標記),設定條件格式規則:

4.3 COUNTIF 統計號碼庫資源狀況

在表格頂部設置統計區,放置以下公式:

總號碼數: =COUNTA(A:A)-1
可用號碼佔比: =COUNTIF(F:F,"成功")/(COUNTA(A:A)-1)
本週新增: =COUNTIFS(A:A,">="&TODAY()-7)

這些公式讓你一打開表格就能看到號碼庫的整體健康狀態——可用號碼佔比低於 50% 時,就該「進貨」了。

六、進階玩法:號碼庫的智能化擴展

七、排坑指南

坑一:IFTTT 免費版頻率限制

症狀:短信量較大時,部分記錄未能寫入 Google Sheets,IFTTT 後台顯示「Applet skipped」。

原因:IFTTT 免費版對 Applet 執行頻率有隱性限制,高頻觸發時可能被限速。

解法:如果月收碼量超過 1,000 條,建議升級 IFTTT Pro,或轉而使用 Zapier(免費版每月 100 次任務)或 n8n(自託管,無限制)。n8n 是本方案的最終形態——完全免費且無頻率限制。

坑二:Google Sheets API 並發寫入限制

症狀:短時間內連續寫入多行後,後續寫入被拒絕,表格中出現缺口。

原因:Google Sheets API 有約 60 次/分鐘的寫入限制,超過後返回 HTTP 429。

解法:在 Python 腳本中實現緩衝隊列——收到短信後先存入 Redis 列表或本地文件,每隔 2 秒批量寫入一次。如果月短信量超過 10,000 條,建議直接使用 Google Sheets API 的批次寫入接口,一次請求寫入多行。

坑三:IFTTT 的 Value 字段限制

症狀:你想同時傳遞號碼、短信內容、服務名稱、接收時間、平台名稱等 5 個字段,但 Webhook 只能傳遞 value1value2value3 三個參數。

解法:將所有資訊編碼到一個 JSON 字符串,放入 value1。然後在 Google Sheets 中用 REGEXEXTRACT 或 Google Apps Script 解析。例如:

{"phone":"+1234567890","sms":"Your code is 123456","service":"Google","platform":"5sim","received_at":"2026-05-03T10:30:00Z"}

在 Sheets 中用公式 =REGEXEXTRACT(A2,"""phone"":""([^""]+)") 即可提取號碼。


結語:讓每一條驗證碼都成為你的數據資產

這套方案把「收到驗證碼」這件事,從一次性消耗變成了可沉澱的數字資產。號碼庫積累三週後,你就擁有了自己的可用號碼篩選數據——哪些號段對 Google 友好、哪些對 Telegram 友好、哪些已經失效——這些洞察來自你自己的真實使用記錄,遠比任何第三方評測更貼合你的實際場景。

工具鏈組合:IFTTT(自動化中樞)+ Google Sheets(可視化存儲)+ Python 輪詢腳本(可選的輕量翻譯器)。
行動建議:花 30 分鐘搭建基礎版本,然後讓它在你每次使用接碼平台時自動積累數據。三週後,你會感謝自己——你不再是在「用一個扔一個」,而是在建立一個專屬於你的號碼數據庫。