ปฐมบทการสร้าง LINE Chatbot (ฉบับอัพเดท 2024)
บทความนี้เป็นบทความสำหรับผู้เริ่มต้นสร้าง LINE Chatbot ซึ่งผมตั้งใจเขียนแยกออกมา เนื่องจากบทความนี้จะกลายเป็น Prerequisite สำหรับบทความเกี่ยวกับ LINE Chatbot ทั้งหมดในอนาคต (OOP ชัดๆ)
สิ่งที่จะได้เรียนรู้จากบทความนี้
- การสร้าง LINE Official Account
- การเปิดใช้งาน Messaging API
- รู้จักกับ LINE Developers Console และ Channel
- การตั้งค่าความปลอดภัย
- การบริหารจัดการสมาชิกใน Project
1. การสร้าง LINE Official Account
เริ่มต้นให้เข้าไปที่ https://manager.line.biz โดยคนที่ยังไม่ได้เข้าสู่ระบบ จะถูก redirect ไปหน้าเข้าสู่ระบบของ LINE Business ID ตามภาพด้านล่าง
การเข้าสู่ระบบ LINE Business ID สามารถเลือก Log in ได้ทั้ง Log in with LINE account(ปุ่มสีเขียว) หรือ Log in with business account(ปุ่มสีดำ)
กรณีที่ Log in ครั้งแรกไม่ว่าจะกดปุ่มเขียวหรือดำ เราจะเจอหน้าที่บอกให้เราสร้าง LINE Business ID ก็ให้เรากดปุ่ม Creat LINE Business ID ไปได้เลย
เมื่อเข้าสู่ระบบเรียบร้อยจะเจอหน้าที่ให้สร้าง LINE Official Account(LINE OA) โดยใครที่ยังไม่เคยมี LINE OA มาก่อนก็กดปุ่ม Creat LINE official account(ปุ่มสีเขียว) ส่วนใครที่มีบัญชี LINE OA อยู่แล้ว และต้องการเพิ่ม LINE OA ก็ให้กดลิงค์ Creat new ทางซ้ายมือ ตามภาพด้านล่าง
กรณีกดสร้างบัญชีด้วยปุ่ม Create LINE official account(ปุ่มสีเขียว) ครั้งแรกสุด เราจะเจอให้ยืนยันเบอร์โทร โดยระบบจะส่ง SMS มาให้เรากรอก
จากนั้นก็จะเจอฟอร์มการสร้าง LINE OA ก็ให้ระบุข้อมูลต่างๆลงไป
เมื่อกด ตกลง ก็จะเจอหน้าให้ยืนยันข้อมูล ซึ่งถ้าข้อมูลทุกอย่างถูกต้องแล้วก็ให้กด เสร็จสิ้น ไปได้เลย
โดยถ้าเจอหน้าจอตามภาพด้านล่างนี้ ก็ถือว่าได้ผ่านขั้นตอนแรกแล้ว
2. การเปิดใช้งาน Messaging API
หลังจากที่เรามี LINE OA เรียบร้อยแล้ว ขั้นตอนนี้จะพาทุกคนไปเพิ่มความสามารถให้ LINE OA ของเรากลายเป็น LINE Chatbot ได้
โดยเริ่มจากให้เรากลับมาตั้งหลักที่ https://manager.line.biz ซึ่งกรณีที่เรามีบัญชี LINE OA อยู่ หน้านี้จะแสดงบัญชี LINE OA ต่างๆที่เรามี ก็ให้เรากดเลือกบัญชี LINE OA ที่เราต้องการเปิดใช้งาน Messaging API ได้เลย
เมื่อเข้ามาหน้าหลักของบัญชี LINE OA ที่เราเลือก ก็ให้เราไปทีเมนู Settings > Messaging API แล้วให้กดปุ่ม Enable Messaging API(ปุ่มสีเขียว) ต่อได้เลย
โดยถ้าเป็นการ Enable Messaging API ครั้งแรกของบัญชี LINE Business ID นี้ จะเจอหน้าให้ลงทะเบียน Developer info ก็ให้กรอกชื่อและอีเมล แล้วก็กด Agree ไป
จากนั้นเราจะเจอหน้าเลือก Provider โดย Provider คือ superset ของแอปทั้งหลายที่จะเกิดขึ้น ซึ่งอาจตั้งเป็น ชื่อตัวเอง, ชื่อบริษัท, ชื่อทีม หรือชื่อกลุ่มก็ได้ ซึ่งกรณีที่เราไม่เคยมี Provider มาก่อน เราจะต้องสร้าง Provider ใหม่ แต่ในกรณีที่เราเคยมี Provider มาแล้ว หน้านี้จะแสดง Provider ที่มีอยู่มาให้เลือกด้วย
ขั้นตอนนี้สำคัญมาก เพราะหากเราต้องการให้ userId ของ LINE Chatbot ตัวที่กำลังจะสร้างมีค่า userId เดียวกันกับ LINE Chatbot ตัวอื่นๆ หรือ LIFF app อื่นๆ ที่อยู่ภายใต้ Provider ที่เคยสร้างไว้ จะต้องเลือก Provider ให้ตรงกันเท่านั้น (เลือกผิดชีวิตเปลี่ยน) เพราะขั้นตอนการสร้างหรือเลือก Provider นั้นจะไม่สามารถแก้ไขได้ในภายหลัง
หมายเหตุ: 1 LINE Business ID จะสามารถมี Provider สูงสุดได้ 10 Providers และไม่สามารถมีคำว่า LINE ในชื่อ Provider ได้
เมื่อเลือก Provider แล้ว จะมาเจอกับหน้าที่ให้เราระบุ URL ของ Privacy Policy และ Terms of Use ซึ่งตรงนี้ใครมีก็ระบุลงไป แต่หากยังไม่มีก็สามารถกดปุ่ม ok ต่อไปได้
ถัดไปเราจะเจอกับหน้ายืนยัน ซึ่งหากข้อมูลถูกต้องก็กดปุ่ม ok ไปได้เลย
ถึงตรงนี้ เราก็ได้เปิดใช้งาน Messaging API ให้กับบัญชี LINE OA ของเราเรียบร้อย
3. รู้จักกับ LINE Developers Console และ Channel
LINE Developers Console คือเว็บไซต์สำหรับการบริหารจัดการ LINE Chatbot(LINE OA ที่เปิดใช้งาน Messaging API แล้ว) ในส่วนของนักพัฒนา
โดยเมื่อเราเข้ามาแล้ว เราจะพบหน้าที่แสดงรายชื่อของ Provider ต่างๆ ตามภาพก็จะมี Provider ชื่อ Brown Company
ให้กดเลือก Provider ที่ต้องการเข้าไป แล้วเราจะพบกับบัญชี LINE OA ที่เราได้เปิดใช้งาน Messaging API ไว้แล้ว ซึ่งในที่นี้เราจะเรียกมันว่า Channel(Channel จะเปรียบเสมือน Chatbot หรือ App) นะครับทุกคน
ถัดไปเมื่อคลิกเลือก Channel เราจะเจอหน้ารายละเอียดต่างๆ แต่สิ่งที่จะโฟกัสในการสร้าง LINE Chatbot ก็คือ tab ชื่อ Messaging API ก็ให้คลิกเลย จากนั้นจะพบกับ Bot basic ID และ QR code ที่ให้เราเพิ่มเพื่อนได้ ตรงนี้ให้ลองเอา QR code read ของแอป LINE มาแสกนเพิ่มเพื่อนดูได้เลย
ไถต่อลงมาด้านล่างของ tab ชื่อ Messaging API เราจะเจอส่วนที่เป็น Webhook settings ซึ่งตรงนี้เองเราจะเอา Webhook ที่เราจะพัฒนาขึ้นในอนาคตมาระบุเพื่อให้ LINE Chatbot สามารถตอบกลับอัตโนมัติได้
จากภาพด้านบน ส่วนถัดไปคือ LINE Official Account features ตรงนี้จะมีลิงค์ให้เรากระโดดกลับไปจัดการที่ LINE Official Account Manager อีก 3 เรื่องด้วยกัน
- Allow bot to join group chats: ตั้งค่าเพื่ออนุญาตให้ LINE Chatbotเข้ากลุ่มต่างๆได้(ค่าเริ่มต้น LINE Chatbot จะเข้ากลุ่มไม่ได้)
- Auto-reply messages: เป็นการตั้งค่าการตอบกลับอัตโนมัติเมื่อผู้ใช้ส่งข้อความมา แต่กรณีที่เราจะใช้งาน Messaging API ก็แนะนำให้ disabled ไป เพราะเราจะพัฒนาส่วนที่ตอบกลับเอง
- Greeting messages: เป็นข้อความต้อนรับอัตโนมัติ เมื่อผู้ใช้ add ตัว LINE Chatbot เรา
และส่วนสุดท้ายสำคัญมากสำหรับการเขียนโปรแกรมเลย คือ Channel access token ซึ่งตัว token ตรงนี้จะเปรียบเสมือนเป็นกุญแจในการไขเข้าไปใช้งาน API เส้นต่างๆในกลุ่มของ Messaging API โดยเราสามารถสร้างด้วยการกดปุ่ม Issue(ปุ่มสีดำ)
หมายเหตุ: 1 Provider จะมี Messaging API Channel ที่เราเป็น admin ได้สูงสุด 100 Channels
4. การตั้งค่าความปลอดภัย
เราสามารถเพิ่มความปลอดภัยให้กับ LINE Chatbot ของเราจาก Messaging API Channel ใน LINE Developers Console โดยการจำกัดการเรียก API จาก IP Address ที่เราระบุได้ ซึ่งกรณีนี้ ต่อให้คนอื่นได้ Access Token ของเราไป ก็จะไม่สามารถใช้งานได้หากเราระบุ IP Address ที่อนุญาตไว้ วิธีการก็คือเข้าไปที่ Channel ที่ต้องการ คลิก tab ชื่อ Security แล้วกดปุ่ม Add IP address (ปุ่มสีเขียว)
ถัดไปให้ระบุ IPv4 ที่ต้องการจำกัด ซึ่งเราสามารถระบุได้หลาย IP Address
หมายเหตุ: กรณีนี้จะมีปัญหากับ Serverless ที่จ่าย IP แบบ dynamic
5. การบริการจัดการสมาชิกใน Project
ใน LINE Developers Console เราสามารถบริหารจัดการคนที่จะเข้ามามีส่วนร่วมกับ Project ของเราจะแบ่งเป็น 2 ประเภท
4.1 การบริหารจัดการสมาชิกใน Provider
ในหน้า Provider ของเรา เราสามารถเพิ่ม Roles หรือสมาชิกที่จะเข้ามาช่วยบริหารจัดการได้ ซึ่งในกรณีนี้ เมื่อเพิ่มสมาชิกแล้ว ตัวสมาชิกจะสามารถเพิ่ม Channel เองได้ แต่จะมีสิทธิ์เข้าถึงเพียงแค่ใน Channel ที่เขาสร้างเท่านั้น นั่นก็คือ ใครสร้างอันไหน ก็เข้าถึงได้เฉพาะของตัวเองเท่านั้น
โดยให้คลิกเลือกชื่อ Provider จากทางซ้ายมือของหน้า จากนั้นเลือก tab ที่ชื่อ Roles ตามภาพด้านล่าง
จากนั้นก็ระบุอีเมลและสิทธิ์ โดยถ้าสิทธิ์เป็น Admin จะสามารถสร้าง Channel ได้ แต่สิทธิ์ Member จะไม่สามารถสร้าง Channel ได้
เมื่อกด Send invitation(ปุ่มสีเขียว) จะมีอีเมลไปหาผู้ที่ถูกเชิญ ให้กดยืนยันเพื่อตอบรับการมาบริหารจัดการ Provider
4.2 การบริหารจัดการสมาชิกใน Channel
ส่วนนี้ผมว่าทุกคนน่าจะได้ใช้บ่อยกว่า ก็คือการเพิ่มสมาชิกมาช่วยบริหารจัดการ LINE Chatbot ของเรา โดยเริ่มจากการเลือก Messaging API Channel เป้าหมาย คลิกไปที่ tab ชื่อ Roles
จากนั้นก็กดปุ่ม Invite by email หรือ Import from provider
เมื่อเพิ่มเสร็จเรียบร้อย ก็จะมีเมลไปให้เจ้าของอีเมล ให้กดยืนยันเพื่อตอบรับการมาบริหารจัดการ Messaging API Channel
หมายเหตุ: ความแตกต่างของสิทธิ์ Admin และ Member คือ Admin จะสามารถบริหารทุกอย่างได้ เช่น issue ตัว Access Token ใหม่ หรือการระบุ Webhook URL เป็นต้น แต่หากเป็น Member จะเห็นรายละเอียดและสถิติของ LINE Chatbot เท่านั้น
สรุป
สำหรับใครที่กำลังสนใจจะเขียนบทความเกี่ยวกับ LINE Chatbot จากนี้ไป ก็สามารถอ้างอิงบทความนี้ได้เลย เพราะจะได้ไม่ต้องลงแรงในส่วนนี้ ข้ามไปเขียนส่วนอื่นๆต่อได้เลยนะครับ และสำหรับใครที่ต้องการลุยต่อ ผมมี 2 ทางให้เลือกศึกษาตามความสนใจ
แบบแรก สร้างด้วย Dialogflow
แบบที่สอง สร้าง API เอง
สำหรับวันนี้ขอตัวลาไปก่อน ราตรีสวัสดิ์ LINE Developers