การแจ้งเตือนข้อความที่ได้รับ

เมื่อคุณได้รับข้อความขาเข้า ระบบจะส่งการแจ้งเตือนไปยัง URL ของ Webhook ที่คุณตั้งค่าไว้ในการตั้งค่าแอพพลิเคชั่น เอกสารฉบับนี้จะอธิบายเกี่ยวกับข้อความขาเข้าที่คุณอาจได้รับพร้อมกับแสดงตัวอย่าง

อ็อบเจ็กต์การแจ้งเตือน

การแจ้งเตือนข้อความที่ได้รับอาจประกอบด้วยอ็อบเจ็กต์ต่อไปนี้

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

ตัวอย่างข้อความที่ได้รับ

ข้อความตัวอักษร

{
  "contacts": [{
    "profile": {
      "name": "Kerry Fisher"
      },
    "wa_id": "16315551234"
  }],
  "messages":[{
    "from": "16315551234",
    "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf",
    "timestamp": "1518694235",
    "text": {
      "body": "Hello this is an answer"
    },
    "type": "text"
  }]
} 

ข้อความตำแหน่งที่ตั้งคงที่

{
  "contacts": [{
    "profile": {
        "name": "Kerry Fisher"
    },
    "wa_id": "16315551234"
  }],
 "messages":[{
   "from":"16315551234",
   "id":"ABGGFlA5FpafAgo6tHcNmNjXmuSf",
   "location":{
      "address":"Main Street Beach, Santa Cruz, CA",
      "latitude":38.9806263495,
      "longitude":-131.9428612257,
      "name":"Main Street Beach",
      "url":"https://foursquare.com/v/4d7031d35b5df7744"},
   "timestamp":"1521497875",
   "type":"location"
 }]
} 

ข้อความผู้ติดต่อ

{
  "contacts": [{
    "profile": {
      "name": "Kerry Fisher"
    },
    "wa_id": "16315551234"
  }],
  "messages": [{
    "contacts": [{
      "addresses": [{
        "city": "Menlo Park",
        "country": "United States",
        "country_code": "us",
        "state": "CA",
        "street": "1 Hacker Way",
        "type": "WORK",
        "zip": "94025"
      }],
      "birthday": "2012-08-18",
      "emails": [{
        "email": "kfish@fb.com",
        "type": "WORK"
      }],
      "ims": [{
        "service": "AIM",
        "user_id": "kfish"
      }],
      "name": {
        "first_name": "Kerry",
        "formatted_name": "Kerry Fisher",
        "last_name": "Fisher"
      },
      "org": {
        "company": "Meta",
 	"department": "WhatsApp"
      },
      "phones": [{
        "phone": "+1 (940) 555-1234",
        "type": "CELL"
        },
        {
          "phone": "+1 (650) 555-1234",
          "type": "WORK",
          "wa_id": "16505551234"
      }],
      "urls": [{
        "url": "https://www.facebook.com",
        "type": "WORK"
      }]
    }],
    "from": "16505551234",
    "id": "ABGGFlA4dSRvAgo6C4Z53hMh1ugR",
    "timestamp": "1537248012",
    "type": "contacts"
  }]
}

การตั้งค่า contact_image จะเว้นว่างไว้หากลูกค้าที่เป็นผู้บริโภคใช้ iPhone

ข้อความสื่อ

ข้อความที่มีรูปภาพ:

{
	"messages": [{
		"from": "16315551234",
		"id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf",
		"image": {
			"file": "/usr/local/wamedia/shared/b1cf38-8734-4ad3-b4a1-ef0c10d0d683",
			"id": "b1c68f38-8734-4ad3-b4a1-ef0c10d683",
			"mime_type": "image/jpeg",
			"sha256": "29ed500fa64eb55fc19dc4124acb300e5dcc54a0f822a301ae99944db",
			"caption": "Check out my new phone!"
		},
		"timestamp": "1521497954",
		"type": "image"
	}]
}

ช่อง caption อาจมีหรือไม่มีก็ได้สำหรับข้อความสื่อ โดยจะปรากฏเฉพาะเมื่อผู้ใช้เขียนคำบรรยายเท่านั้น

ข้อความที่มีเอกสาร:

{
  "messages": [{
    "from": "16315551234",
    "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf",
    "timestamp": "1522189546",
    "type": "document",
    "document": {
      "caption": "80skaraokesonglistartist",
			"file": "/usr/local/wamedia/shared/fc233119-733f-49c-bcbd-b2f68f798e33",
			"id": "fc233119-733f-49c-bcbd-b2f68f798e33",
			"mime_type": "application/pdf",
			"sha256": "3b11fa6ef2bde1dd14726e09d3edaf782120919d06f6484f32d5d5caa4b8e"
		}
	}]
}

ข้อความเสียง:

{
    "messages":[{
        "from": "16315551234",
        "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf",
        "timestamp": "1521827831",
        "type": "voice",
        "voice": {
            "file": "/usr/local/wamedia/shared/463e/b7ec/ff4e4d9bb1101879cbd411b2",
            "id": "463eb7ec-ff4e-4d9b-b110-1879cbd411b2",
            "mime_type": "audio/ogg; codecs=opus",
            "sha256": "fa9e1807d936b7cebe63654ea3a7912b1fa9479220258d823590521ef53b0710"}
  }]
}

ข้อความที่มีสติกเกอร์:

{
  "messages":[{
        "from": "16315551234",
        "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf",
        "timestamp": "1521827831",
        "type": "sticker",
        "sticker": {
            "id": "b1c68f38-8734-4ad3-b4a1-ef0c10d683",
            "metadata": {
                "sticker-pack-id": "463eb7ec-ff4e-4d9b-b110-1879cbd411b2",
                "sticker-pack-name" : "Happy New Year",
                "sticker-pack-publisher" : "Kerry Fisher",
                "emojis": ["🐥", "😃"],
                "ios-app-store-link" : "https://apps.apple.com/app/id3133333",
                "android-app-store-link" : "https://play.google.com/store/apps/details?id=com.example",
                "is-first-party-sticker" : 0 | 1 # integer 
            },
            "mime_type": "image/webp",
            "sha256": "fa9e1807d936b7cebe63654ea3a7912b1fa9479220258d823590521ef53b0710"
        }  
    }]
}

ข้อความที่สร้างจากโฆษณาที่คลิกไปยัง WhatsApp

{
   "messages":[{
      "from":"12345678",
      "id":"ABGGFlA5FpafAgo6tHcNmNjXmuSf",
      "image":{
         "id":"b1c68f38-8734-4ad3-b4a1-ef0c10d683",
         "mime_type":"image/jpeg",
         "sha256":"29ed500fa64eb55fc19dc4124acb300e5dcca0f822a301ae99944db"
         "caption": "Check out my product!",
      },
      "timestamp":"1521497954",
      "type":"image",
      "referral" : {
        "headline": "Our new product",
        "body" : "This is a great product",
        "source_type": "<SOURCE_TYPE>",
        "source_id": "<SOURCE_ID>",
        "source_url": "<SOURCE_URL>", //for the moment, this will always be a Facebook owned domain
        "video": {
          "id": "e144be57-12b1-4035-a520-703fcc87ef45",
      }     
    }
  }]
}

ดูข้อมูลเพิ่มเติมเกี่ยวกับคุณสมบัติ referral

ตัวอย่าง: ข้อความที่ไม่รองรับ

คุณอาจได้รับการแจ้งเตือนการเรียกกลับ unknown ด้านล่างนี้เป็นตัวอย่างประเภทข้อความที่ได้รับจากลูกค้าซึ่งระบบไม่รองรับ

{
  "contacts": [{
		"profile": {
			"name": "Kerry Fisher"
		},
		"wa_id": "16315551234"
	}],
  "messages": [{
		"errors": [{
			"code": 501,
			"details": "Message type is not currently supported",
			"title": "Unknown message type"
		}],
		"from": "16315551234",
		"id": "ABGGFRBzFymPAgo6N9KKs7HsN6eB",
		"timestamp": "1531933468",
		"type": "unknown"
	}]
}

ข้อความส่งต่อ

คุณสามารถดูได้ว่าข้อความที่คุณได้รับเป็นข้อความส่งต่อหรือเป็นข้อความที่ส่งต่อบ่อยครั้งหรือไม่ ด่านล้างนี้คือการแจ้งเตือนสำหรับข้อความส่งต่อ

{
  "contacts": [{
    "profile": {
      "name": "Kerry Fisher"
    },
    "wa_id": "16315551234"
  }],
  "messages": [{
    "context": {
      "forwarded": true
    },
    "from": "16315558011",
    "id": "ABGGFmkiWVVPAgo-sOGh7pv13wVJ",
    "text": {
      "body": "Party at Dotty's tonight!"
    },
    "timestamp": "1593068329",
    "type": "text"
  }]
}

ด่านล้างนี้คือการแจ้งเตือนสำหรับข้อความที่ส่งต่อบ่อยครั้ง

{
  "contacts": [{
    "profile": {
      "name": "Kerry Fisher"
    },
    "wa_id": "16315551234"
  }],
  "messages": [{
    "context": {
      "frequently_forwarded": true
    },
    "from": "16315558011",
    "id": "ABGGFmkiWVVPAgo-sBTHfS3swNIl",
    "timestamp": "1593068225",
    "type": "video",
    "video": {
      "id": "e144be57-12b1-4035-a520-703fcc87ef45",
    "mime_type": "video/mp4",
    "sha256": "02c4e68a4f0d6af5ec6ef02120e20d15f520a4dd473b535abec1aab175c4e8b9"
    }
  }]
}

การแจ้งเตือนความปลอดภัยที่เปิดใช้งาน

หากตั้งค่าพารามิเตอร์ show_security_notifications เป็น true ในการตั้งค่าแอพพลิเคชั่น การแจ้งเตือนข้อความขาเข้าทั้งหมดจะมีข้อมูลเกี่ยวกับข้อมูลระบุตัวตนของผู้ใช้ที่อยู่ในอ็อบเจ็กต์ identity ดังต่อไปนี้

{
  "contacts": [{
		"profile": {
			"name": "Kerry Fisher"
		},
		"wa_id": "16315551234"
	}],
   "messages": [{
        "from": "16315553601",
        "id": "ABGGFjFVU2AfAgo6V-Hc5eCgK5Gh",
        "identity": {
            "acknowledged": true,
            "created_timestamp": 1602532300000,
            "hash": "Sjvjlx8G6Z0="
        },
        "text": {
            "body": "Hi from new number 3601"
        },
        "timestamp": "1602532300",
        "type": "text"
    }]
}

ข้อความจากการคลิกปุ่มตอบกลับด่วน

เมื่อลูกค้าของคุณคลิกที่ปุ่มตอบกลับด่วน ระบบจะส่งการตอบกลับ ด้านล่างนี้คือตัวอย่างของรูปแบบการเรียกกลับ หมายเหตุ: ลูกค้าอาจไม่คลิกที่ปุ่ม และตอบกลับข้อความแบบอินเทอร์แอคทีฟหรือเพียงแค่ส่งข้อความถึงคุณ ตรวจสอบให้แน่ใจว่าคุณสามารถรองรับสถานการณ์ประเภทนี้ได้เช่นกัน ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบ Webhooks
{
    "contacts": [
        {
            "profile": {
                "name": "Kerry Fisher"
            },
            "wa_id": "16505551234"
        }
    ],
    "messages": [
        {
            "button": {
                "payload": "No-Button-Payload",
                "text": "No"
            },
            "context": {
                "from": "16315558007",
                "id": "gBGGFmkiWVVPAgkgQkwi7IORac0"
            },
            "from": "16505551234",
            "id": "ABGGFmkiWVVPAgo-sKD87hgxPHdF",
            "timestamp": "1591210827",
            "type": "button"
        }
    ]
    # If there are any errors, an errors field (array) will be present        
    "errors": [ { ... } ]
}

ข้อความขาเข้าที่ตอบกลับข้อความที่ส่ง

ผู้ใช้สามารถตอบกลับข้อความที่ต้องการได้ใน WhatsApp เพื่อให้ธุรกิจเข้าใจบริบทของข้อความตอบกลับ เราจึงได้ระบุอ็อบเจ็กต์ context ด้วย อ็อบเจ็กต์ context นี้จะระบุ id ของข้อความที่ลูกค้าตอบกลับ, WhatsApp ID ของผู้ส่งข้อความต้นทาง และ ID ของสินค้าใดก็ตามที่ลูกค้าอาจกล่าวถึง

ดูข้อมูลเพิ่มเติมได้ที่หัวข้อการตอบกลับข้อความ

ตัวอย่าง: ลูกค้าตอบกลับข้อความของคุณ

ด้านล่างนี้เป็นตัวอย่างข้อความขาเข้าที่ตอบกลับข้อความที่คุณได้ส่งไป ดูข้อมูลเพิ่มเติมได้ที่ส่วนอ็อบเจ็กต์ context ด้านล่าง

{
  "contacts": [ {
    "profile": {
        "name": "Kerry Fisher"
    },
    "wa_id": "16315551234"
  } ],
   "messages":[{
      "context":{
         "from":"16315558011",
         "id":"ABGGFlA5FpafAgo6tHcNmNjXmuSf"
         },
      "from":"16315551234",
      "id":"gBGGFlA5FpafAgkOuJbRq54qwbM",
      "text":{"body":"Yes, count me in!"},
      "timestamp":"1521499915",
      "type":"text"
  }]
}

ช่อง text อาจมีหรือไม่มีก็ได้สำหรับข้อความสื่อ หากมี ค่า text จะเป็นคำบรรยายของสื่อที่ส่ง หรือเป็นเนื้อหาการตอบกลับหากมีการตอบกลับมาเป็นข้อความตัวอักษร

ตัวอย่าง: ลูกค้าตอบกลับข้อความลงประกาศ

{
   "messages": [ {
      "context": {
        "from": "sender_wa_id_of_context_message",
        "group_id": "group_id_of_context_message",
        "id": "message_id_of_context_message",
        "mentions": [ "wa_id1", "wa_id2" ]
      },
      "from": "sender_wa_id",
      "group_id": "group_id",
      "id": "message_id",
      "timestamp": "message_timestamp",
      "type": "interactive",
      "interactive": {
          "type": "list_reply",
          "list_reply": {
            "title": "row-title-content-here",
            "id": "unique-row-identifier-here",
            "description": "row-description-content-here"
          }
      }
   }

ตัวอย่าง: ลูกค้าตอบกลับข้อความปุ่มตอบกลับ

{
  "messages": [ 
    {
      "context": {
        "from": "sender_wa_id_of_context_message",
        "group_id": "group_id_of_context_message",
        "id": "message_id_of_context_message",
        "mentions": [ "wa_id1", "wa_id2" ]
      },
      "from": "sender_wa_id",
      "group_id": "group_id",
      "id": "message_id",
      "timestamp": "message_timestamp",
      "type": "interactive",
      "interactive": {
        "type": "button_reply",
        "button_reply": {
          "id": "unique-button-identifier",
          "title": "button-text"
        }
      } # end interactive node
    } # end message item
  ] # end messages array
}

ตัวอย่าง: ลูกค้าขอข้อมูลเกี่ยวกับผลิตภัณฑ์แบบเจาะจง

{
  "contacts": [
    {
      "profile": {
        "name": "customer-name"
      },
      "wa_id": "customer-whatsapp-ID"
    }
  ],
  "messages": [
    {
      "from": "customer-whatsapp-ID",
      "id": "message-ID",
      "text": {
        "body": "Can I get this in another color?"
      },
      "context": {
        "referred_product": {
          "catalog_id": "catalog-ID",
          "product_retailer_id": "product-ID"
        }
      },
      "timestamp": "message-received-timestamp",
      "type": "text"
    }
  ]
}

ตัวอย่าง: ลูกค้าสั่งซื้อหลังจากได้รับข้อความที่มีผลิตภัณฑ์รายการเดียวหรือหลายผลิตภัณฑ์

{
   "messages": [ {
      "from": "customer-whatsapp-id",
      "group_id": "group-id",
      "id": "message-ID",
      "timestamp": "message-timestamp",
      "type": "order"
      "order": {
         "catalog_id": "catalog_id",
         "product_items": [
            {
            "product_retailer_id":"product-ID",
            "quantity":"number-of-items",
            "item_price":"unitary-price-of-item",
            "currency":"price-currency"
            },
                 ...
         ],
         "text":"text-message-sent-along-with-the-order"
      }
   }
}

ข้อความระบบขาเข้า

ระบบจะสร้างข้อความระบบเมื่อมีเหตุการณ์บางอย่างเกิดขึ้น

ตัวอย่าง: ลูกค้าเปลี่ยนหมายเลขโทรศัพท์

หากตั้งค่าพารามิเตอร์ notify_user_change_number เป็น true ในการตั้งค่าแอพพลิเคชั่น คุณจะได้รับข้อความระบบขาเข้าเมื่อผู้ใช้เปลี่ยนหมายเลขโทรศัพท์

{
    "messages": [
        {
            "from": "16315558889",
            "id": "ABGGFjFVWIifAzNzeXMtMTYzMTU1NTg4ODlAcy53aGF0c2FwcC5uZXQtMTU3NDA4MDEwMjIxMy1jaGFuZ2U",
            "system": {
                "body": "‎User A changed from ‎+1 (631) 555-8889 to ‎+1 (631) 555-8890‎",
                "new_wa_id": "16315558890",
                "type": "user_changed_number"
            },
            "timestamp": "1574080102",
            "type": "system"
        }
    ]
}

ตัวอย่าง: ผู้ใช้อาจมีการเปลี่ยนแปลง

หากตั้งค่าพารามิเตอร์ show_security_notifications เป็น true ในการตั้งค่าแอพพลิเคชั่น คุณจะได้รับข้อความระบบขาเข้าเมื่อผู้ใช้ (ที่สนทนากับคุณ) อาจมีการเปลี่ยนแปลงบน WhatsApp

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

{
    "messages": [
        {
            "from": "16315553601",
            "id": "ABGGFjFVU2AfAzVzeXMtMTYzMTU1NTM2MDFAcy53aGF0c2FwcC5uZXQtMTYwMjUzNTM1NjMzMi1pZGVudGl0eQ",
            "system": {
  		"body": "Test security code change",
                "identity": "Rc/eg9Rl0JA=",
                "type": "user_identity_changed",
                "user": "16315553601"
            },
            "timestamp": "1602535356",
            "type": "system"
        }
    ]
}

ประเภทของข้อความระบบ

ประเภทของข้อความระบบคำอธิบาย

user_changed_number

หมายเลขโทรศัพท์ของผู้ใช้มีการเปลี่ยนแปลง

user_identity_changed

ผู้ใช้อาจมีการเปลี่ยนแปลงบน WhatsApp

การกล่าวถึงผู้ใช้ในข้อความ

เมื่อคุณส่งข้อความที่มีการกล่าวถึง WhatsApp ID หนึ่งโดยตรงและมีผู้ตอบกลับข้อความนั้น คุณจะพบ ID ที่กล่าวถึงในอ็อบเจ็กต์ context และในอาร์เรย์ mentions เนื่องจากข้อความสามารถกล่าวถึงหมายเลขโทรศัพท์มากกว่า 1 หมายเลข ช่อง mentions จะเป็นอาร์เรย์หมายเลขโทรศัพท์ แม้ว่าจะมีการกล่าวถึงเพียงหมายเลขเดียวก็ตาม

ตัวอย่าง: ลูกค้าตอบกลับข้อความ

ด้านล่างนี้เป็นตัวอย่างลูกค้าตอบกลับข้อความที่มีการกล่าวถึง อ็อบเจ็กต์ context จะมีหมายเลขที่กล่าวถึงในข้อความต้นทาง ข้อความตอบกลับในอ็อบเจ็กต์ text จะกล่าวถึงหมายเลขเดียวกันซ้ำอีกครั้ง

{   
  "messages": [{
    "context": {
      "from": "16315555544",
      "id": "gBGGFlA5FpafAgkOuJbRq54qwbM",
      "mentions": [
        "16315551000",
        "16315551099"
      ]
    },
    "from": "16315551234 ",
    "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf",
    "timestamp": "1504902988",
    "text": {
      "body": "@16315551000 and @16315551099 are mentioned"
    },
    "type": "text"
  }]
}