LINE API 101 – ชำแหละเบื้องหลัง LINE API ต้องรู้ก่อนเริ่มทำ LINE CHATBOT (Part 1)

Share
เขียนโดย ชนกานต์ ชินชัชวาล CEO , Zwiz.AI (Robolingo Co., Ltd.)

LINE Chatbot หรือ ตัวช่วยตอบอัตโนมัติผ่าน LINE เป็นซอฟแวร์ที่มีการใช้งานอย่างแพร่หลาย โดยหลายๆ องค์กรเริ่มมีการนำไปใช้มากขึ้นเรื่อยๆ ทั้งในการซัพพอร์ตลูกค้า ใช้ในเชิงการสื่อสารการตลาด การทำแคมเปญต่างๆ รวมถึงการสื่อสารภายใน เป็นต้น

หลายๆ องค์กรที่ต้องการจะเริ่มทำ LINE Chatbot ครั้งแรก มักจะมีความไม่มั่นใจในหลายๆอย่าง ทั้งเรื่องความปลอดภัยของข้อมูล ความเร็วของระบบ รวมถึงความเป็นไปได้ในการพัฒนาเชื่อมต่อระบบต่างๆ และคำถามอื่นๆอีกมากมาย บางครั้งความไม่มั่นใจนี้ทำให้โปรเจคไม่เกิด หรือ บางทีโปรเจคก็ถูกพับไปอย่างน่าเสียดาย

ส่วนตัวผมได้มีโอกาสเข้าไปปรึกษาหลายๆ องค์กรในเรื่องการออกแบบและพัฒนา LINE Chatbot ในความเห็นผมคิดว่าสิ่งที่สำคัญที่สุดที่จะทำให้องค์กรเริ่มต้นพัฒนาได้ถูกต้องคือการเข้าใจโครงสร้างของระบบของ LINE ครับ

โครงสร้างระบบของ LINE และ LINE API

สิ่งที่ต้องเข้าใจก่อนอันดับแรกคือโครงสร้างตามรูปด้านบน สิ่งที่จะเกิดเมื่อลูกค้าทักแชทผ่านแอพพลิเคชั่น LINE แล้วนั้น ข้อความที่ส่งข้อจะถูกส่งไปยังเซิฟเวอร์ของ LINE  แล้วก็ถูกส่งมายัง Official Account ขององค์กร และ พนักงานขององค์กร หรือ แอดมิน ก็สามารถตอบกลับผ่าน แอพพลิเคชั่น LINE Official Account ซึ่งเป็นเคสปกติที่เกิดขึ้นก่อนจะมี LINE Chatbot

หากเราต้องการติดตั้ง LINE Chatbot เข้าไปช่วยแอดมินตอบ LINE  ตอนนี้มีมีวิธีเดียวคือเราจะต้องทำผ่านสิ่งที่เรียกว่า LINE API ที่จะเป็นเหมือนตัวกลางที่ต่อออกมาจาก LINE Server ให้เราได้ ดึง/ส่งข้อมูลมายัง Server ของเรา

โดย LINE API ทำหน้าที่เหมือนเป็นตัว รับ-ส่ง ข้อมูลมาหาระบบเซิฟเวอร์ของเรา ซึ่งมีความปลอดภัยในการรับส่งข้อมูลเพราะว่า การรับส่งข้อมูลจะต้องทำผ่านช่องทาง https เท่านั้น และ LINE ยังมีกลไลการยืนยันการรับส่งข้อมูลที่ปลอดภัยตามมาตรฐานความปลอดภัยทางเทคโนโลยีสารสนเทศ

โดยการส่งข้อมูลจากไลน์จะทำผ่าน LINE Channel เป็นตัวแทนของ LINE Official Account 1 ตัว โดยปกติเมื่อเปิดใช้งาน LINE API ของ LINE OA จะมีการสร้าง Channel มา 1 ตัว เช่นกัน โดยถ้าเรามีหลาย Channel จะสามารถจัดกลุ่มของ Channel โดยจะเรียกว่า Provider ได้

โดยการรับส่งข้อมูลผ่าน LINE Channel นั้นจะต้องมีการยืนยันด้วย Channel Secret และ Access token (อ่านเพิ่มเติมเกี่ยวกับ channel secret และ access token https://developers.line.biz/en/docs/messaging-api/channel-access-tokens/ )

แล้วข้อมูลอะไรที่ LINE ให้เราผ่าน APIบ้าง?

ข้อมูล Real time จะถูกส่งผ่าน webhook มาที่ server เรา

1. ข้อความที่ลูกค้าส่งเข้ามาทุกประเภท (ข้อความ,รูป,ไฟล์,เสียง,location,sticker เป็นต้น)

2. Event ต่างๆ 15 รูปแบบ เช่น การ add friend/block (อ่านเพิ่มเติมได้ที่ Link )

ข้อมูล Non-real time ( server เรา จะสามารถเรียกดูผ่าน API)

จำนวน friends,จำนวนโควต้าที่เหลือ, อื่นๆ (ดูข้อมูลที่ดึงได้ทั้งหมดที่ Link )

ข้อมูลอะไรที่เราส่งกลับไปให้ LINE ลูกค้าผ่าน API ได้บ้าง?

ข้อความทุกประเภทที่ไลน์ซัพพอร์ต (ข้อความ,รูป,ไฟล์,เสียง,location, sticker, button, carousel, flex message Link )

โดยการส่งจะมี 2 แบบ คือ reply หมายถึงการตอบกลับทันที (ไม่เกิน 30 วินาที) หลังจากได้รับข้อความจากลูกค้า และ push คือ การส่งข้อความเวลาอื่นๆ โดยการส่ง push นั้นจะเสียโควต้าบรอดแคสต์ของไลน์ ต่อ 1 ข้อความ

Server Chatbot ของเรา

เซิฟเวอร์แชทบอทเป็นส่วนสำคัญที่ต้องมีเผื่อใช้ในการรับส่งข้อความ และ event ต่างๆ โดยอาจจะตั้งเอง หรือว่าใช้ Software as A Services ก็ได้

  1. ตั้ง server เอง หรือ จ้างผู้พัฒนามาติดตั้งพร้อมพัฒนาให้ (โดยแนะนำเป็น cloud server เพราะต้องรับ traffic จาก public ได้ต้องเชื่อมต่อผ่าน https) เหมาะสำหรับโปรเจคใหญ่ โดยมี LINE Developer Partner (https://lineforbusiness.com/th/partner-developer ) ที่พร้อมพัฒนาให้คุณ
  2. ใช้ Software as A Service เช่น Dialogflow (https://cloud.google.com/dialogflow/ ) หรือ ZWIZ.AI Chatbot (https://www.zwiz.ai) เป็นต้น เหมาะสำหรับโปรเจคขนาดเล็ก-กลาง

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

  1. NLP และ CMS – การประมวลผลภาษา และ การจัดการข้อมูลของแชทบอท
  2. Database – ฐานข้อมูลของแชทบอท
  3. Admin Livechat Tools – หน้าจอการตอบกลับของแอดมิน (ในกรณีบอทตอบไม่ได้)
  4. API to internal/external system – การเชื่อมต่อ API เพื่อรับส่งข้อมูลภายในองค์กร
  5. LIFF – LINE Front-end framework หรือหน้าจอ Webview ที่อยู่ใน LINE

ซึ่งในส่วนต่างๆที่กล่าวมานี้ ผมจะมาเล่าให้ฟังในบทความถัดไปครับ