Webhook และ API สำหรับคนที่ไม่ใช่ Developer
เข้าใจ API และ Webhook ด้วยภาษาคน พร้อมศัพท์ที่ต้องรู้ ตัวอย่างต่อ LINE OA เข้า Google Sheets และวิธีตั้งค่าให้ปลอดภัย
คุณอาจเคยนั่งประชุมแล้วได้ยินทีมเทคพูดว่า "เดี๋ยวยิง webhook เข้ามา" หรือ "ต้องขอ API key ก่อน" แล้วพยักหน้าไปทั้งที่ไม่แน่ใจ ไม่แปลกเลย แต่ถ้าคุณเป็นคนทำการตลาด ปฏิบัติการ หรือเจ้าของธุรกิจที่อยากทำ Automation เอง สองคำนี้คือ ประตูบานแรก ที่ต้องเข้าใจ เพราะทุก workflow ใน n8n, Make หรือ Zapier ล้วนทำงานบนสองแนวคิดนี้
API และ Webhook คืออะไร
API: คุณเป็นฝ่ายไปถาม
API (Application Programming Interface) คือช่องทางที่ระบบหนึ่งเปิดไว้ให้ระบบอื่นมาขอข้อมูลหรือสั่งงาน ลองนึกถึงการโทรไปถามร้านว่า "ของมาหรือยัง" คุณเป็นฝ่ายเริ่ม ถามเมื่อไหร่ก็ได้ แต่ถ้าถามบ่อยเกินไปก็เปลือง และถ้าถามห่างเกินไปก็รู้ช้า
Webhook: เขาเป็นฝ่ายบอกคุณ
Webhook คือการที่ระบบต้นทาง "ส่งข้อความมาหาคุณเอง" ทันทีที่มีเหตุการณ์เกิดขึ้น เหมือนร้านโทรมาบอกว่า "ของมาแล้ว" คุณแค่ให้ที่อยู่ (URL) ไว้ แล้วรอรับ
ศัพท์ 6 คำที่ต้องรู้
- Endpoint: URL ปลายทางที่รับคำขอ
- Method: ประเภทคำขอ ที่เจอบ่อยคือ GET (ขอดูข้อมูล) และ POST (ส่งข้อมูลเข้าไป)
- JSON: รูปแบบข้อมูลที่ระบบส่วนใหญ่ใช้ส่งหากัน เป็นคู่ชื่อกับค่า เช่น ชื่อลูกค้า กับ "สมชาย"
- Header: ข้อมูลประกอบคำขอ เช่น กุญแจยืนยันตัวตน
- API Key หรือ Token: รหัสที่บอกว่าคุณมีสิทธิ์ใช้ ต้องเก็บเหมือนรหัสผ่าน
- Status Code: ตัวเลขบอกผล กลุ่ม 2xx คือสำเร็จ กลุ่ม 4xx มักเป็นปัญหาฝั่งคำขอ เช่น ไม่มีสิทธิ์
ตัวอย่างจริง: LINE OA ส่งข้อความเข้า Google Sheets
ร้านดอกไม้ออนไลน์อยากให้ทุกข้อความที่ลูกค้าทัก LINE OA ถูกบันทึกลง Google Sheets เพื่อดูว่าลูกค้าถามอะไรบ่อย ขั้นตอนเป็นแบบนี้
- สร้าง workflow ใน n8n ที่เริ่มด้วยโหนด Webhook ได้ URL มาหนึ่งอัน
- นำ URL ไปใส่เป็น Webhook URL ในการตั้งค่า Messaging API ของ LINE
- เอกสารของ LINE ระบุว่า ทุกครั้งที่มีคนเพิ่มเพื่อนหรือส่งข้อความ แพลตฟอร์มจะส่ง HTTP POST พร้อมข้อมูลเหตุการณ์มาที่ URL นี้
- n8n รับ JSON แล้วดึงเฉพาะเวลา ประเภทข้อความ และเนื้อความ ไปเพิ่มแถวใน Google Sheets ผ่านการเชื่อมต่อที่ใช้ API ของ Google
ในตัวอย่างเดียวนี้ คุณได้ใช้ทั้งสองแบบ: LINE ใช้ webhook บอกคุณ และ n8n ใช้ API ไปเขียนข้อมูลลง Google Sheets
สิ่งที่ควรรู้เวลาตั้ง Webhook ใน n8n
Test URL กับ Production URL ต่างกัน
เอกสาร n8n อธิบายว่า Test URL ใช้ตอนกำลังสร้าง โดยข้อมูลจะแสดงในหน้า workflow ส่วน Production URL จะทำงานเมื่อ publish workflow แล้ว และดูผลได้ในแท็บ Executions ความผิดพลาดที่เจอบ่อยคือใส่ Test URL ไว้ในระบบจริง แล้วสงสัยว่าทำไมหยุดรับข้อมูล
ปิดประตูให้แน่น
โหนด Webhook ของ n8n ตั้งให้ผู้เรียกต้องยืนยันตัวตนได้ เช่น Basic auth, Header auth หรือ JWT และจำกัด IP ที่เรียกได้ ส่วน LINE แนะนำให้ตรวจลายเซ็น (signature) ของคำขอก่อนประมวลผล เพื่อยืนยันว่ามาจาก LINE จริง
ตอบกลับให้เร็ว
ระบบต้นทางหลายแห่งรอคำตอบสถานะ 2xx ถ้าไม่ได้ อาจถือว่าล้มเหลว เอกสาร LINE ระบุว่าการส่งซ้ำจะเกิดเมื่อเซิร์ฟเวอร์ไม่ตอบ 2xx และต้องเปิดใช้ในคอนโซล ทั้งยังไม่การันตีว่าจะส่งซ้ำทุกครั้ง
API คือคุณโทรไปถาม Webhook คือเขาโทรมาบอก
ข้อควรระวัง
- อย่าวาง API key ในแชต อีเมล หรือเอกสารที่แชร์ทั้งบริษัท ใช้ระบบเก็บ credential ของเครื่องมือแทน
- Webhook URL ที่ไม่มีการยืนยันตัวตน ใครรู้ URL ก็ส่งข้อมูลปลอมเข้ามาได้
- ข้อมูลที่วิ่งผ่าน webhook มักมีข้อมูลส่วนบุคคล เก็บเท่าที่จำเป็นตาม PDPA
- API ส่วนใหญ่มี rate limit ถ้าเรียกถี่เกินอาจถูกบล็อกชั่วคราว
เริ่มต้นยังไง
- สร้าง workflow ที่มีโหนด Webhook หนึ่งตัว แล้วลองส่งข้อมูลจากฟอร์มทดสอบ
- ดู JSON ที่เข้ามา แล้วฝึกเลือกเฉพาะช่องที่ต้องการ
- ต่อปลายทางเป็น Google Sheets
- เปิดการยืนยันตัวตน แล้วเปลี่ยนไปใช้ Production URL
- อ่านเอกสาร API ของระบบที่คุณใช้บ่อยที่สุด สังเกตว่ามี webhook ให้หรือไม่
อยากเข้าใจต่อว่า API ต่างจากมาตรฐานใหม่อย่าง MCP ยังไง ลองคอร์ส MCP คืออะไร ต่างจาก API อย่างไร และฝึกเชื่อมแอปจริงในคอร์ส n8n Integrations บน Plants.work Learn