Community程式設計與開發github.com

RabbitDesigns22/whatsapp-number-onboarding

在 Meta Business 中將客戶或自己的電話號碼連接到 WhatsApp Business 平台 (Cloud API) 時載入,或用於「顯示綠色但收不到訊息」、訊息重複、範本失敗或 Meta 阻擋步驟等情況。提供安全順序(投資組合 → WhatsApp 帳號 → 號碼 → 應用程式 → 權杖 → Webhook → 用 PIN 註冊 → 測試)、每一步的讀回檢查,以及實際阻擋的故障排除表(附官方錯誤碼與修復方式),並標記為官方或實測。

whatsapp-number-onboarding 是什麼?

此技能專為開發者與 AI 代理設計,用於在 Meta Business 平台中安全地將電話號碼接入 WhatsApp Business API。它提供了一個經過驗證的 11 步驟順序(從建立商務管理組合到最終的帳單設定),每一步都附有「讀回檢查」以確保操作正確。技能特別強調「應用程式與 WhatsApp 帳號必須屬於同一個商務管理組合」這個關鍵規則,並針對常見的卡關情況(如號碼顯示綠色卻收不到訊息、訊息重複、PIN 碼錯誤)提供詳細的故障排除表,每個錯誤碼都有官方或實測的修復方法。此技能適用於 Claude Code、Coder 或任何執行 AI 代理的平台,可自動執行 API 呼叫與螢幕檢查,開發者只需提供 SMS 驗證碼、PIN 碼等機器無法處理的資訊。它明確區分「商務管理組合」、「WhatsApp 商業帳號(WABA)」、「電話號碼」與「Meta 應用程式」這四個核心概念,避免混淆導致錯誤。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/RabbitDesigns22/whatsapp-number-onboarding/tree/HEAD/skills/whatsapp-number-onboarding

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

WhatsApp 號碼上線(Meta Cloud API)

連接一個號碼看似只需 10 次點擊,但實際上常因步驟順序、哪個投資組合擁有哪個資源,以及 Meta 螢幕顯示「已連接」卻收不到訊息而失敗。此技能提供安全順序,以及真實發生的阻擋情況與其修復方式。

下方使用的信心標籤: [official] = 取自 developers.facebook.com(表格中有網址);[field] = 在真實上線中發生,且修復方式經現場確認;[unconfirmed] = 曾見過,但原因或修復方式從未被證實。切勿將 [field] 或 [unconfirmed] 當作 Meta 政策。

詞彙:絕不可混淆這四項

  • 商務管理組合(Business Manager):Meta 中的公司。
  • WhatsApp 商業帳號 (WABA):存在於商務管理組合內。在 UI 中,請使用訊息帳號 ID,而非「WhatsApp 帳號/存在」ID(後者會回傳「This API is not supported」)[field]。
  • 電話號碼:存在於 WABA 內。其電話號碼 ID 並非電話號碼本身。
  • Meta 應用程式:存在於開發者帳號中,並連結至商務管理組合;它持有權杖、應用程式密鑰與 Webhook。

當您提到限制時,請指明是針對哪一項。

決定計畫的限制 [official]

  • 一個新的商務管理組合最多可註冊 2 個電話號碼;當商家驗證通過或達到 2,000 則訊息限制後,上限會提高至 20。
  • 訊息限制是以商務管理組合為單位,由其所有號碼共享:250 → 2,000 → 10,000 → 100,000 → 無限制。一個忙碌的號碼可能會用光所有人的配額。
  • 註冊與取消註冊:每個號碼每 72 小時各 10 次請求;超過此限制會出現錯誤 133016,且該號碼將被封鎖 72 小時。除錯時請勿頻繁點擊「啟用」。
  • 在 WhatsApp Manager 或應用程式儀表板中新增號碼並不會將其註冊至 Cloud API;仍需要進行註冊呼叫。
  • 已用於 WhatsApp(手機應用程式)的號碼必須先刪除該帳號才能註冊。
  • 刪除號碼:僅限商務管理組合管理員操作,無法透過 API 進行,若已連接則需要 2 步驟 PIN 碼,且若在過去 30 天內曾發送付費訊息則無法刪除。請將刪除視為不可逆。

開始之前(一次性收集)

客戶看到的商家名稱(必須完全一致)、法定名稱、國家、完整地址、電話、網站或 Facebook 粉絲專頁、電子郵件、標誌,以及要連接的號碼。該號碼不得安裝 WhatsApp(若有,請先在該手機上刪除 WhatsApp 帳號)。決定由誰建立並保管 6 位數 PIN 碼。

安全順序(每個步驟結束時都要讀回確認)

  1. 商務管理組合(business.facebook.com):在新增號碼之前,完整填寫商家資訊(法定名稱、地址、電話、網站)。若為空白,則上線會失敗,出現「your business doesn't meet WhatsApp policy」(#2494070)[field]。
  2. WhatsApp 帳號 + 號碼(商務管理組合設定 → 帳號 → WhatsApp 帳號 → 新增 → 新號碼)。顯示名稱 = 客戶的商家名稱,絕非代理商名稱。透過 SMS 或語音(適用於市話)驗證 [official]。讀回確認:號碼出現在 WABA 下方。
  3. Meta 應用程式(developers.facebook.com → 建立應用程式 → WhatsApp 使用案例),連結至擁有該 WABA 的相同商務管理組合。應用程式在一個商務管理組合、WABA 在另一個:一切顯示綠色,但沒有任何訊息送達;將應用程式移至 WABA 所屬的商務管理組合即可修復 [field]。設定 → 基本:回傳 200 的隱私權/條款/資料刪除 URL、類別、圖示。
  4. 系統使用者(在包含應用程式與 WABA 的商務管理組合中):權杖需具備 whatsapp_business_messaging + whatsapp_business_management 權限,且無到期日。由人類將權杖貼到儲存位置;切勿回顯。
  5. ID,由您讀取,而非由人輸入: GET /{waba-id}/phone_numbers → 電話號碼 ID。將電話號碼存入「Phone-number-ID」變數曾導致機器人故障 [field]。
  6. 環境變數(在確切的託管專案中)。若多個客戶專案使用相同變數名稱:請說出專案名稱並在儲存前檢查標題。曾發生客戶的 ID 被存入另一個專案,導致其正式機器人指向錯誤號碼 [field]。
  7. Webhook(應用程式 → WhatsApp → 設定):https://<domain>/webhook 加上驗證權杖;訂閱 messages 欄位(此欄位不一定預設開啟)。然後將 WABA 訂閱至應用程式:POST /{waba-id}/subscribed_apps。
  8. 註冊號碼: POST /{phone-number-id}/register 加上 6 位數 PIN 碼。若該號碼已有 2 步驟驗證,請使用現有的 PIN 碼 [official]。讀回確認:GET /{phone-number-id}?fields=status,platform_type,name_status → 應顯示 CONNECTED 和 CLOUD_API。在此之前會顯示 PENDING / NOT_APPLICABLE [field]。
  9. 發布應用程式,然後從個人手機發送「Hi」,確認機器人會回應。
  10. 帳單: 在發送範本之前,於 WhatsApp 帳號上設定付款方式、時區與幣別(否則會出現 131042)[official]。
  11. 最終讀回: 號碼狀態、GET /{waba-id}/subscribed_apps 僅顯示此應用程式、Webhook URL 與欄位、debug_token 顯示正確的應用程式與系統使用者權杖。

顯示名稱可能在號碼已正常運作時仍處於「審核中」狀態長達數天 [field];請勿點擊「編輯」,因為編輯會重新啟動審核。

黃金規則

  • 應用程式與 WABA 必須在同一個商務管理組合。若客戶自己的商務管理組合卡在審核中,一個經實測的替代方案是將號碼放入一個可運作的商務管理組合(您的)的 WABA 中,並將應用程式放在同一個商務管理組合,保持在 2 個號碼的限制內 [field]。官方的長期路徑是成為技術服務供應商並使用 Embedded Signup。
  • 預設情況下,一個客戶一個應用程式。 應用程式的回呼 URL 是預設目的地。Meta 支援每個 WABA 和每個號碼的 Webhook 覆寫 [official],但若您未測試過,請堅持一個客戶一個應用程式。
  • 當託管網域變更時,請立即在 Meta 中更新 Webhook並讀回確認。網域變更曾無聲無息地讓機器人停止運作 [field]。
  • 對於應保留在 Cloud API 上的號碼,切勿使用「繼續」路徑來安裝 WhatsApp Business 應用程式,因為這會將號碼從 API 中移除 [field]。
  • 先嘗試不會造成損壞的方法。 取消註冊、刪除或移動號碼是最後手段,僅在 Meta 要求時才進行(請見上方限制)。
  • 健康狀態檢查只有在 Meta 回報時才是綠色: 請從 Meta 讀取電話狀態。有效的權杖無法證明號碼的狀態 [field]。
  • 重新導向至商務管理組合的 URL 並不能證明誰擁有某項資產。 請確認螢幕上的商務管理組合名稱 [field]。

故障排除

症狀原因修復方式標籤 / 來源
一切顯示綠色,但收不到訊息應用程式與 WABA 在不同商務管理組合在 WABA 所屬的商務管理組合建立新應用程式;移除舊應用程式的 Webhook[field]
訊息重複 / 出現「app secret mismatch」警告有兩個應用程式訂閱了同一個 WABA移除舊應用程式的 Webhook 與訂閱[field]
部署後機器人停止運作Webhook 仍指向舊網域更新 Webhook 並讀回確認[field]
客戶分享 WABA 時出現「No se pudo asignar el socio」(指派合作夥伴)原因從未被證實(新的或未驗證的商務管理組合、帳號審核中)避免分享:在一個商務管理組合內建置(請見黃金規則)原因 [unconfirmed],解決方案 [field]
開發者上線時出現「Business doesn't meet WhatsApp policy」(#2494070)商家資訊不完整 / 新的商務管理組合完整填寫商家資訊;改從 WhatsApp Manager 新增號碼[field]
使用 WABA ID 時出現「This API is not supported」使用了「WhatsApp 帳號」ID使用訊息帳號 ID[field]
狀態 PENDING,平台 NOT_APPLICABLE已新增但未註冊使用 PIN 碼執行 POST /register[official] + [field]
1330052 步驟 PIN 碼錯誤使用號碼現有的 PIN 碼錯誤碼
133006號碼未驗證透過 SMS/語音驗證,然後註冊錯誤碼
133008 / 133009PIN 碼嘗試次數過多或過快等待 details 中指定的時間錯誤碼
133010號碼未在平台上註冊註冊該號碼錯誤碼
133015號碼最近被刪除,仍在刪除中等待 5 分鐘錯誤碼
13301672 小時內註冊/取消註冊請求超過 10 次停止;等待封鎖結束註冊
133000先前的取消註冊失敗再次取消註冊,然後再註冊錯誤碼
「Number already has WhatsApp」號碼仍用於手機應用程式或其他帳號先刪除該 WhatsApp 帳號電話號碼
範本出現 131042未設定付款方式、信用額度、時區或幣別,帳號被暫停在 WhatsApp Manager 中修正帳單;向使用者顯示 Meta 的 error_data.details 文字,而非猜測錯誤碼
僅對少數收件者出現 131042根據 Meta 文字為帳號層級,但在一次現場檢查中,16 個範本中有 18 個成功送達在認定為帳號層級或暫停任何操作之前,先計算同一時段內成功與失敗的數量[field] 經驗法則
131049未送達以「維持健康的生態系統互動」至少等待 24 小時再重新發送錯誤碼
131026收件者無法接收(沒有 WhatsApp、版本過舊、違反條款)透過其他方式聯繫錯誤碼
131031WABA 因違反政策而受到限制請參閱政策執行與健康狀態 API錯誤碼
無法將號碼連結至 Facebook 粉絲專頁以使用點擊 WhatsApp 廣告顯示名稱仍在審核中(可能性很大)等待審核通過,然後前往粉絲專頁 → 連結的帳號 → WhatsApp[unconfirmed]

其他官方頁面:開始使用 · 訊息限制 · Webhook 覆寫。

未經確認(若出現請說明)

  • 「No se pudo asignar el socio」的真正原因。
  • 一個全新的、未經驗證的商務管理組合是否能夠建立 WABA。
  • 在 WABA 之間移動號碼:Meta 的指南指出,對於新帳號模式的帳號,此功能不受支援;在實務上也從未成功完成。
  • 顯示名稱審核的官方時間。兩個官方網址在 2026 年 11 月回傳 404。

誰做什麼

代理會執行所有它能做到的螢幕操作與 API 檢查。人類只提供機器無法提供的東西:來自手機的 SMS/語音驗證碼、PIN 碼、貼上密碼、身分驗證、付款。

相關技能