วิธีแก้ไขเมื่อ LINE Chatbot ไม่ตอบสนอง เนื่องจากจำกัดการเข้าถึง

ด้วยกระบวนการทำ LINE Chatbot เองนั้นเราจะต้องมี Server ที่ทำหน้าที่ไว้รับ webhook events จาก LINE Server เพื่อจะ reply ข้อความหรือข้อมูลกลับไป ดังภาพ

15 สัญญาณจาก Webhook Events ที่จะปลุกให้ LINE Bot ของคุณตื่นจากภวังค์
https://medium.com/p/4cb7da653274

แต่มันมีสาเหตุหนึ่งที่ทำให้ Bot application ที่เราสร้างขึ้นไม่ตอบสนองต่อ webhook ที่ควรจะตรวจสอบเป็นอันดับแรก ๆ เลยก็คือ Server ที่เราใช้งานนั้น เป็นแบบ public หรือป่าว มี policy ที่จำกัดการเข้าถึงอย่างเช่น รับเฉพาะ IP Address ตาม Geolocation ของประเทศใดประเทศหนึ่งหรือป่าว

ซึ่งในเคสนี้ผมเองทำ Local Server ในอยู่ในวง DMZ และทำ NAT จากภายนอกเข้ามาด้วย Public IP บน Firewall Fortinet ที่สร้าง Policy เอาไว้

การตั้งค่า Firewall Policy for LINE Chatbot

กำหนด Policy ในส่วนของ source ให้เพิ่ม geolocation ของประเทศญี่ปุ่นเข้าไปด้วย เนื่องจาก Server ของ LINE API มันอยู่ที่ญี่ปุ่น เพียงเท่านี้ก็เรียบร้อย สำหรับ firewall แบรนด์อื่น หรือ OpenSource firewall ก็สามารถใช้วิธีนี้ได้เช่นกัน เพียงแต่ต้องหา Group IP ของ ญี่ปุ่น หรือ เฉพาะ LINE API มาใส่ก็ได้เช่นกัน