管理電話號碼和憑證

本指南會概述解決方案合作夥伴和顧客電話號碼的相關資訊。此外,本指南亦包含解決方案合作夥伴需要管理顧客電話號碼和憑證的情況下之相關流程資訊。

有關電話號碼的初始資訊

商家需要了解手機號碼和內嵌註冊的一些基本資訊。

商家需要擁有專屬的手機號碼,才能透過內嵌註冊功能使用 WhatsApp。如果商家使用了某個正常使用中的手機號碼註冊 WhatsApp Messenger 或 WhatsApp Business 應用程式,便無法再使用同一個手機號碼。

商家可以將多個手機號碼連結至其 Meta 商業帳戶,因此他們只需加入另一個手機號碼,並將之用於 WhatsApp

商家不能使用已註冊 WhatsApp Business 或 WhatsApp 消費者應用程式的手機號碼,透過內嵌註冊流程來完成註冊程序。

如要進一步了解有關手機號碼和 WhatsApp Business 平台的詳情,請參閱手機號碼

如要了解如何轉移現有的已註冊 WhatsApp 手機號碼,請參閱轉移手機號碼

適用於顧客的指示

此部分專為內嵌註冊功能的顧客而設,可為顧客執行手機號碼相關操作方面提供指導。

將手機號碼加入 WhatsApp Business 帳戶

您可透過以下 2 種方法來將其他手機號碼加入 WhatsApp Business 帳戶 (WABA):

  1. [建議使用] 再次進行內嵌註冊流程,選擇現有企業管理平台和 WhatsApp Business 帳戶,然後加入手機號碼並進行驗證。
  2. 企業管理平台中,前往 WhatsApp 管理工具電話號碼分頁,然後選擇加入電話號碼。使用此選項時,由於手機驗證不適用於企業管理平台,因此解決方案合作夥伴必須手動確認電話號碼。有鑑於此,我們建議商家按照內嵌註冊流程來加入其他電話號碼。

適用於解決方案合作夥伴的指示

本部分專為企業解決方案供應商而設,可為管理顧客電話號碼和憑證方面提供指示。

註冊雲端 API 電話號碼

內嵌註冊流程的手機驗證成功後,即表示註冊成功,系統亦會向 register 端點傳送 API 呼叫。若要做到這一點,請提供任何一種 code_methodsms | voice)。由於您已驗證電話號碼,因此無需擔心需要接收註冊代碼。您無需執行 verify API 呼叫

或者,您可以預先驗證電話號碼,然後在新的內嵌註冊流程中向您的顧客提供此號碼。這樣,顧客就不必在註冊過程中聯絡您以獲取單次密碼。請參閱預先驗證的電話號碼

註冊企業內部電話號碼

內嵌註冊流程的手機驗證成功後,即表示註冊成功,系統亦會向 account 端點傳送 API 呼叫。若要做到這一點,請提供任何一種 code_method (sms | voice)。由於您已驗證電話號碼,因此無需擔心需要接收註冊代碼。您無需執行 verify API 呼叫

或者,您可以預先驗證電話號碼,然後在新的內嵌註冊流程中向您的顧客提供此號碼。這樣,顧客就不必在註冊過程中聯絡您以獲取單次密碼。請參閱預先驗證的電話號碼

必須在完成內嵌註冊流程後的 14 天內註冊電話號碼。如果未在此時段內註冊號碼,則您必須再次完成內嵌註冊流程,然後才能重新註冊。

獲取手機狀態和憑證

phone_numbers 端點可讓您查看電話號碼顯示名稱的狀態,以及在變更名稱後檢索憑證。如欲了解更多資訊,請參閱讀取電話號碼

要求範例

在以下範例中,使用指定的 WhatsApp Business 帳戶編號。

curl -i -X GET "https://graph.facebook.com/v21.0/{waba-id}/phone_numbers
  ?fields=
    display_phone_number,
    certificate,
    name_status,
    new_certificate,
    new_name_status
  &access_token={system-user-access-token}"
如要獲取 WhatsApp Business 帳戶的編號,請前往企業管理平台 > 企業管理平台設定 > 帳戶 > WhatsApp Business 帳戶。找出您要使用的帳戶,然後點擊該帳戶。系統會隨即開啟一個面板,其中包含該帳戶的編號等相關資訊。

回應範例

{
  "data": [
    {
      "id": "1972385232742141",    
      "display_phone_number": "+1 631-555-1111",
      "last_onboarded_time": "2023-08-22T19:05:53+0000",
      "certificate": "AbCdEfGhIjKlMnOpQrStUvWxYz",
      "new_certificate": "123AbCdEfGhIjKlMnOpQrStUvWxYz",
      "name_status": "APPROVED",
      "new_name_status": "APPROVED",
    }
  ]
}

回應參數

名稱說明

name_status

目前顯示名稱要求的審查狀態。

點擊左欄中的箭咀以了解可用選項。

可用選項

  • APPROVED:名稱已獲批准,您現在可以下載證書。
  • DECLINED:名稱未獲批准,您無法下載憑證。
  • EXPIRED:您的憑證已過期,不可再下載。
  • PENDING_REVIEW:您的名稱要求正在接受審查,您無法下載憑證。
  • NONE:沒有可用的憑證。

new_name_status

顯示名稱變更要求的審查狀態。只有在您有提出顯示名稱變更要求時,此欄位才會傳回資料。

certificate

傳回電話號碼的目前憑證。

new_certificate

顯示名稱變更要求獲得批准後,新顯示名稱的憑證。只有在顯示名稱變更要求獲得批准後,此欄位才會傳回數據,而且此項數據在手機號碼註冊至新憑證後將無法再使用。

獲取電話號碼的單次密碼狀態

如要查看號碼是否為透過單次密碼(OTP)驗證的電話號碼,請點擊該號碼的 code_verification_status 欄位。首先,請向 /{whatsapp-business-account-id}/phone_numbers 端點發出 GET 呼叫:

curl -i -X GET \ 
"https://graph.facebook.com/v21.0/{waba-id}/phone_numbers
  ?access_token={your-access-token}"

回應中會包含 code_verification_status,結果為下列兩項之一:VERIFIEDNOT_VERIFIED。回應範例如下所示:

[
  {
    "code_verification_status": "NOT_VERIFIED",
    "id": "1754951608042154"
  }
]

此外,您也可以透過呼叫電話號碼編號以獲取此狀態:

curl -i -X GET \ 
"https://graph.facebook.com/v21.0/{phone-number-id}
  ?access_token={your-access-token}"
如要取得電話號碼編號,請向 https://graph.facebook.com/v21.0/{whatsapp-business-account-ID}/phone_numbers 執行呼叫。請以電話號碼所屬的 WhatsApp Business 帳戶之編號取代 {whatsapp-business-account-ID}。如需查看範例,請參閱取得所有電話號碼

按帳戶模式篩選電話號碼

您可以查詢手機號碼,並根據其 account_mode 來作篩選。您可以為要求使用下列參數。

要求參數

名稱說明

field

包含篩選所用的欄位。在這個範例中,您應使用 account_mode

operator

包含您想用以篩選帳戶的方式。在這個範例中,您應使用 EQUAL

value

包含您想尋找的帳戶模式。

點擊左欄中的箭咀以查看支援的值。

支援的值

  • SANDBOX:帳戶未經驗證。

  • LIVE:帳戶不符合未經驗證試用體驗的資格,或已升級為經驗證帳戶。

要求範例

在以下範例中,使用指定的 WhatsApp Business 帳戶編號。

curl -i -X GET "https://graph.facebook.com/v21.0/{waba-id}/phone_numbers
  ?filtering=[{
    "field":"account_mode",
    "operator":"EQUAL",
    "value":"SANDBOX"}]
  &access_token={system-user-access-token}"

回應範例

{
  "data": [
    {
      "id": "1972385232742141",    
      "display_phone_number": "+1 631-555-1111",
      "verified_name": "John’s Cake Shop",
      "quality_rating": "UNKNOWN",
    }
  ],
  "paging": {
	"cursors": {
		"before": "abcdefghij"
		"after": "klmnopqr"
	}
   }
}