您需驗證您要用於發送訊息給顧客的手機號碼。驗證手機號碼時必須使用透過簡訊/語音通話發送的代碼。您可以使用下方指定的圖形 API 完成驗證流程。
若要使用圖形 API 驗證手機號碼,請向 PHONE_NUMBER_ID/request_code
發出 POST
要求。在呼叫中包含您選擇的驗證方式和語言。
端點 | 驗證 |
---|---|
(請參閱取得手機號碼編號) | 使用系統用戶存取權杖自行驗證。 若您代表另一個商家要求驗證碼,存取權杖要有 |
名稱 | 說明(點擊左欄中的箭頭可查看支援的選項。) |
---|---|
| 必要項目。 選定的驗證方式。 |
| 必要項目。 您語言的二字元語言代碼。例如: |
要求範例:
發出 API 呼叫後,您會透過所選的方式收到驗證碼。若要完成驗證流程,請在您向 PHONE_NUMBER_ID/verify_code
發出的 POST
要求中加入您的代碼。
端點 | 驗證 |
---|---|
(請參閱取得手機號碼編號) | 使用系統用戶存取權杖自行驗證。 若您代表另一個商家要求驗證碼,存取權杖要有 |
名稱 | 說明 |
---|---|
| 必要項目。 您呼叫 |
要求範例:
成功時的回應如下:
{ "success": true }
Plus signs (+
), hyphens (-
), parenthesis ((
,)
), and spaces are supported in send message requests.
We highly recommend that you include both the plus sign and country calling code when sending a message to a customer. If the plus sign is omitted, your business phone number's country calling code is prepended to the customer's phone number. This can result in undelivered or misdelivered messages.
For example, if your business is in India (country calling code 91
) and you send a message to the following customer phone number in various formats:
Number In Send Message Request | Number Message Delivered To | Outcome |
---|---|---|
|
| Correct number |
|
| Correct number |
|
| Potentially wrong number |
|
| Potentially wrong number |
您可能希望我們在向顧客傳送訊息之前驗證顧客的身分。您只需在商業電話號碼啟用身分變更檢查設定,就可以讓我們執行此操作。
如果顧客在 WhatsApp 中執行我們認為是身分變更的操作,我們就會為該用戶產生新的身分雜湊。您只需在商業電話號碼啟用身分變更檢查設定,就可以在向顧客傳送訊息時取得此雜湊。啟用之後,每當顧客向您傳送訊息或您向不具身分雜湊的顧客傳送訊息時,我們都會在任何傳入訊息 Webhooks 或傳送狀態 Webhooks 中包含其雜湊。然後,您便可以擷取並儲存此雜湊以供下次使用。
若要使用雜湊,請將其包含在傳送訊息要求中。我們會將要求中的雜湊與顧客的現有雜湊進行比對。如果雜湊配對相符,系統將傳送訊息。如果配對不符,表示顧客自您上次向其傳送訊息到現在已變更身分,因此我們將不會傳送訊息。取而代之的,我們將向您傳送包含錯誤代碼 137000
的訊息狀態 Webhook,通知您失敗且配對不符。
當您收到配對不符的雜湊 Webhook 時,請假設顧客的手機號碼已不再可信。若要重新建立信任,請使用其他非 WhatsApp 管道再次驗證顧客的身分。重新建立信任後,請將失敗的訊息重新傳送到新身分(如有的話),且不包含雜湊。接著儲存訊息狀態傳送 Webhook 中所包含的顧客新雜湊。
向 WhatsApp Business 手機號碼 > 設定端點傳送 POST 要求,可啟用或停用身分變更檢查設定。
POST /<WHATSAPP_BUSINESS_PHONE_NUMBER>/settings
{ "user_identity_change" : { "enable_identity_key_check": <ENABLE_IDENTITY_KEY_CHECK> }
將 <ENABLE_IDENTITY_KEY_CHECK>
設定為 true
以啟用身分檢查,或設定為 false
以停用身分檢查。
curl 'https://graph.facebook.com/v21.0
/106850078877666/settings' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
"user_identity_change": {
"enable_identity_key_check": true
}
}'
{ "success": true }
只有當 recipient_identity_key_hash
雜湊值與顧客的現有雜湊配對相符時,系統才會傳送此訊息範例。
curl 'https://graph.facebook.com/v21.0
/106850078877666/messages' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "+16505551234",
"recipient_identity_key_hash": "DF2lS5v2W6x=",
"type": "text",
"text": {
"preview_url": false,
"body": "Your latest statement is attached. See... "
}
}'
在傳入訊息 Webhooks 中,系統會將顧客的雜湊指派給 identity_key_hash
屬性。
{ "object": "whatsapp_business_account", "entry": [ { "id": "102290129340398", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15550051310", "phone_number_id": "106540352242922" }, "contacts": [ { "profile": { "name": "Pablo Morales" }, "wa_id": "16505551234", "identity_key_hash": "DF2lS5v2W6x=" } ], "messages": [ { "from": "16505551234", "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQUMyNTA4M0VGN0Q4RjdDNDVCMAA=", "timestamp": "1686591695", "text": { "body": "Your latest statement is attached. See... " }, "type": "text" } ] }, "field": "messages" } ] } ] }
在傳送狀態 Webhooks 中,系統會將顧客的雜湊指派給 recipient_identity_key_hash
屬性。
{ "object": "whatsapp_business_account", "entry": [ { "id": "102290129340398", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15550051310", "phone_number_id": "106540352242922" }, "statuses": [ { "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJGODlDQjZBNjUxMUQ5NEU0MEUA", "status": "delivered", "timestamp": "1686591922", "recipient_id": "16505551234", "recipient_identity_key_hash": "DF2lS5v2W6x=", "conversation": { "id": "6c84493f3de086c7c68d5a39248f72c0", "origin": { "type": "service" } }, "pricing": { "billable": true, "pricing_model": "CBP", "category": "service" } } ] }, "field": "messages" } ] } ] }
在傳送狀態 Webhooks 中,系統會將顧客的雜湊指派給 recipient_identity_key_hash
屬性。
{ "object": "whatsapp_business_account", "entry": [ { "id": "102290129340398", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15550051310", "phone_number_id": "106540352242922" }, "statuses": [ { "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJDQzA0OEU4OTdEQUE5REVCQTgA", "status": "failed", "timestamp": "1686594665", "recipient_id": "16505551234", "errors": [ { "code": 137000, "title": "Confirm the correct Recipient Identity Key Hash or send without any identity key hash" } ] } ] }, "field": "messages" } ] } ] }
使用 WhatsApp Business 電話號碼端點來取得電話號碼的目前傳送量層級:
GET /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>?fields=throughput