หมายเลขโทรศัพท์

คู่มือนี้ระบุวิธีที่คุณสามารถตรวจสอบยืนยันหมายเลขโทรศัพท์ของคุณและการจัดรูปแบบที่จำเป็นสำหรับ API ระบบคลาวด์

โดยระบบมีเกณฑ์สำหรับประเภทของหมายเลขโทรศัพท์ที่คุณสามารถเพิ่มลงในบัญชี WhatsApp Business (WABA) โปรดดูข้อมูลเพิ่มเติมที่ หมายเลขโทรศัพท์

คุณต้องทราบ ID หมายเลขโทรศัพท์ของคุณเพื่อที่จะเรียกใช้ API บางรายการ โปรดดูวิธีเรียกดูหมายเลขโทรศัพท์ที่เชื่อมโยงกับ WABA ของคุณที่เรียกดูหมายเลขโทรศัพท์ทั้งหมด ซึ่งการตอบกลับการเรียกใช้ API ประกอบด้วย ID ของหมายเลขโทรศัพท์แต่ละหมายเลขที่เชื่อมต่อกับบัญชี WhatsApp Business ของคุณ ให้บันทึก ID ของโทรศัพท์ที่คุณต้องการใช้กับการโทรของ /PHONE_NUMBER_ID

ตรวจสอบยืนยันหมายเลขโทรศัพท์

คุณจำเป็นต้องตรวจสอบยืนยันหมายเลขโทรศัพท์ที่คุณต้องการใช้ส่งข้อความถึงลูกค้าของคุณ โดยหมายเลขโทรศัพท์ดังกล่าวต้องได้รับการตรวจสอบยืนยันโดยใช้รหัสที่ส่งผ่านทาง SMS/การโทรด้วยเสียง ซึ่งกระบวนการตรวจสอบยืนยันสามารถทำได้ผ่านการเรียกใช้ API กราฟที่ระบุไว้ด้านล่าง

หากต้องการตรวจสอบยืนยันหมายเลขโทรศัพท์โดยใช้ API กราฟ ให้สร้างคำขอ POST ไปยัง PHONE_NUMBER_ID/request_code โดยให้ระบุวิธีการตรวจสอบยืนยันและภาษาที่เลือกไว้ในการเรียกใช้ของคุณ

ตำแหน่งข้อมูลการยืนยันตัวตน

/PHONE_NUMBER_ID/request_code

ยืนยันตัวตนของคุณเองด้วยโทเค็นการเข้าถึงผู้ใช้ระบบ


หากคุณกำลังขอรหัสในนามของธุรกิจอื่น โทเค็นการเข้าถึงนี้จำเป็นต้องมี Advanced Access สำหรับสิทธิ์การอนุญาต whatsapp_business_management

พารามิเตอร์

ชื่อ คำอธิบาย (คลิกที่ลูกศรในคอลัมน์ด้านซ้ายเพื่อดูตัวเลือกที่รองรับ)

code_method

สตริง

จำเป็นต้องระบุ

วิธีการตรวจสอบยืนยันที่เลือก

ตัวเลือกที่รองรับ

  • SMS
  • VOICE

language

สตริง

จำเป็นต้องระบุ

รหัสภาษาแบบ 2 อักขระของภาษานั้นๆ ตัวอย่างเช่น: "en"

ตัวอย่าง

ตัวอย่างคำขอ:

curl -X POST \
  'https://graph.facebook.com/v13.0/FROM_PHONE_NUMBER_ID/request_code' \
  -H 'Authorization: Bearer ACCESS_TOKEN' \
  -F 'code_method=SMS' 
  -F 'locale=en_US'

หลังจากเรียกใช้ API แล้ว คุณจะได้รับรหัสยืนยันผ่านทางวิธีที่คุณเลือก ให้ระบุรหัสของคุณในคำขอ POST ไปยัง PHONE_NUMBER_ID/verify_code เพื่อเสร็จสิ้นกระบวนการตรวจสอบยืนยัน

ตำแหน่งข้อมูล การยืนยันตัวตน

/PHONE_NUMBER_ID/verify_code

ยืนยันตัวตนของคุณเองด้วยโทเค็นการเข้าถึงผู้ใช้ระบบ


หากคุณกำลังขอรหัสในนามของธุรกิจอื่น โทเค็นการเข้าถึงนี้จำเป็นต้องมี Advanced Access สำหรับสิทธิ์การอนุญาต whatsapp_business_management

พารามิเตอร์

ชื่อคำอธิบาย

code

สตริงตัวเลข

จำเป็นต้องระบุ

รหัสที่คุณได้รับหลังจากเรียกใช้ FROM_PHONE_NUMBER_ID/request_code

ตัวอย่าง

ตัวอย่างคำขอ:

curl -X POST \
  'https://graph.facebook.com/v13.0/FROM_PHONE_NUMBER_ID/verify_code' \
  -H 'Authorization: Bearer ACCESS_TOKEN' \
  -F 'code=000000'

การตอบกลับที่สำเร็จจะมีลักษณะดังนี้

{
  "success": true
}

Phone Number Formats

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 RequestNumber Message Delivered ToOutcome

+16315551234

+16315551234

Correct number

+1 (631) 555-1234

+16315551234

Correct number

(631) 555-1234

+916315551234

Potentially wrong number

1 (631) 555-1234

+9116315551234

Potentially wrong number

การตรวจสอบการเปลี่ยนแปลงข้อมูลระบุตัวตน

ตั้งแต่วันที่ 13 มิถุนายน 2023 เป็นต้นไป ฟีเจอร์นี้จะเปิดให้ใช้งานสำหรับหมายเลขโทรศัพท์ธุรกิจที่มีปริมาณข้อความเริ่มต้น จากนั้นจะเปิดให้ใช้งานสำหรับหมายเลขโทรศัพท์ที่มีปริมาณข้อความมากขึ้นในสัปดาห์ต่อๆ ไป

คุณอาจต้องการให้เรายืนยันตัวตนของลูกค้าก่อนที่เราจะส่งข้อความของคุณไปให้ลูกค้าเหล่านั้น ซึ่งคุณสามารถให้เราดำเนินการนี้ได้โดยเปิดใช้งานการตั้งค่าการตรวจสอบการเปลี่ยนแปลงข้อมูลระบุตัวตนในหมายเลขโทรศัพท์ธุรกิจของคุณ

หากลูกค้าดำเนินการใน WhatsApp ที่เราถือว่าเป็นการเปลี่ยนแปลงข้อมูลระบุตัวตน เราจะสร้างแฮชข้อมูลระบุตัวตนใหม่ให้กับผู้ใช้รายนั้น ซึ่งคุณสามารถรับแฮชนี้ได้ทุกครั้งที่คุณส่งข้อความถึงลูกค้าโดยเปิดใช้งานการตั้งค่าการตรวจสอบการเปลี่ยนแปลงข้อมูลระบุตัวตนในหมายเลขโทรศัพท์ธุรกิจของคุณ เมื่อเปิดใช้งานแล้ว ทุกครั้งที่ลูกค้าส่งข้อความถึงคุณ หรือคุณส่งข้อความถึงลูกค้าที่ไม่มีแฮชข้อมูลระบุตัวตน เราจะรวมแฮชของลูกค้าเหล่านั้นไว้ใน Webhooks ข้อความขาเข้าหรือ Webhooks สถานะการนำส่ง จากนั้นคุณจะสามารถบันทึกและจัดเก็บแฮชนี้เพื่อใช้ในอนาคตได้

หากต้องการใช้แฮช ให้คุณรวมไว้ในคำขอส่งข้อความ เราจะเปรียบเทียบแฮชในคำขอกับแฮชปัจจุบันของลูกค้า หากแฮชเหล่านี้ตรงกัน ระบบจะส่งข้อความ แต่หากแฮชไม่ตรงกัน แสดงว่าลูกค้าได้เปลี่ยนข้อมูลระบุตัวตนนับตั้งแต่ครั้งล่าสุดที่คุณส่งข้อความถึงลูกค้า และเราจะไม่ส่งข้อความดังกล่าว แต่เราจะส่ง Webhook สถานะข้อความให้กับคุณแทน โดยมีรหัสข้อผิดพลาด 137000 เพื่อแจ้งให้ทราบว่าเราส่งข้อความไม่สำเร็จและแฮชไม่ตรงกัน

เมื่อคุณได้รับ Webhook แฮชที่ไม่ตรงกัน ให้ถือว่าหมายเลขโทรศัพท์ของลูกค้าไม่สามารถเชื่อถือได้อีกต่อไป หากต้องการให้ความเชื่อมั่นกลับคืนมา ให้ยืนยันตัวตนของลูกค้าอีกครั้งโดยใช้ช่องทางอื่นๆ ที่ไม่ใช่ WhatsApp เมื่อคุณได้รับความเชื่อมั่นกลับคืนมาแล้ว ให้ส่งข้อความที่ส่งไม่สำเร็จอีกครั้งไปยังข้อมูลระบุตัวตนใหม่ (หากมี) โดยไม่มีแฮช จากนั้นให้จัดเก็บแฮชใหม่ของลูกค้าที่รวมอยู่ใน Webhook สถานะการนำส่งข้อความ

รูปแบบคำสั่งของคำขอ

ส่งคำขอ POST ไปที่ตำแหน่งข้อมูล "หมายเลขโทรศัพท์ WhatsApp Business > การตั้งค่า" เพื่อเปิดหรือปิดใช้งานการตั้งค่าการตรวจสอบการเปลี่ยนแปลงข้อมูลระบุตัวตน

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/v19.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/v19.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... "
    }
}'

ตัวอย่าง Webhook ข้อความขาเข้า

ใน 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"
        }
      ]
    }
  ]
}

ตัวอย่าง Webhook สถานะการนำส่ง

ใน 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"
        }
      ]
    }
  ]
}

ตัวอย่าง Webhook สถานะการนำส่งไม่สำเร็จ

ใน 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