ปฐมบทการสร้าง LINE Bot

Jirawatee
LINE Developers Thailand
4 min readSep 24, 2018

--

บทความนี้เป็นบทความสำหรับผู้เริ่มต้นสร้าง LINE Bot ซึ่งผมตั้งใจเขียนแยกออกมา เนื่องจากบทความนี้จะกลายเป็น Prerequisite สำหรับบทความเกี่ยวกับ LINE Bot ทั้งหมดในอนาคต (OOP ชัดๆ)

สิ่งที่จะได้เรียนรู้จากบทความนี้

  1. การสมัครเป็น LINE Developer
  2. การสร้าง Provider
  3. การสร้าง Channel
  4. การตั้งค่าความปลอดภัย
  5. การบริหารจัดการสมาชิกใน Project

1. การสมัครเป็น LINE Developer

เริ่มต้นให้เข้าไปที่ https://developers.line.biz กดปุ่ม Log in จากนั้นเราก็จะเข้าสู่หน้าเพจที่มีหน้าตาแบบนี้ ให้เรากดปุ่ม Log in with LINE account เขียวๆเบาๆ

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

ต่อไปก็จะเจอหน้าลงทะเบียนเป็น LINE Developers ให้กรอกชื่อและอีเมลไป โดยชื่อที่ตั้งจะปรากฎเฉพาะใน Developers Console เท่านั้น ผู้ใช้ของเราไม่เห็นนาจา

หลังจากลงทะเบียนเรียบร้อย จะเจอหน้า Welcome ยินดีด้วยคุณเป็น LINE Developer แล้ว

2. การสร้าง Provider

จากหน้า Welcome ในข้อ 1 เราจะมาสร้างสิ่งที่เรียกว่า Provider กัน โดยตัว Provider จะเป็น superset ของแอปทั้งหลายที่จะเกิดขึ้น ซึ่งอาจตั้งเป็นชื่อตัวเอง, ชื่อบริษัท, ชื่อทีม หรือชื่อกลุ่มก็ได้

ว่าแล้วก็กดตุ่ม Create New Provider สีฟ้าๆตรงกลางหน้านั่นเลย กรอกชื่อ Provider ให้เรียบร้อย(เราสามารถแก้ไขภายหลังได้)

ซึ่งเมื่อสร้าง Provider เสร็จแล้ว เราก็จะเจอกับหน้านี้ เป็นอันว่าสำเร็จในขั้นตอนที่ 2

หมายเหตุ: 1 Account สามารถมี Provider สูงสุดได้ 10 Providers และไม่สามารถมีคำว่า LINE ในชื่อ Provider ได้นาจา

3. การสร้าง Channel

ขั้นตอนต่อไปคือการสร้าง Channel โดย Channel ก็เปรียบเสมือนแอป หรือ Chatbot ซึ่ง 1 Provider จะมี Channel ได้สูงสุด 100 Channels

เริ่มจากกดตุ่ม Create Channel ในกล่อง Messaging API เพื่อเข้าสู่หน้ากรอกรายละเอียด จากนั้นก็ให้อัพโหลดรูปไอคอน, ตั้งชื่อ(ห้ามมีคำว่า LINE) และใส่รายละเอียดของ LINE Bot เราไป โดยเนื้อหาที่ระบุไปผู้ใช้ของเราจะเห็น ดังนั้นต้องกรอกดีๆเพราะจะมีผลกับการพิจารณาของผู้ใช้ในการ add ตัว Bot เราด้วย

ในหน้าเดียวกัน จะเจอส่วนที่ให้ระบุ Category, Subcategory และระบุ Email แล้วกด Confirm ไป

หมายเหตุ: Privacy Policy URL และ Terms of Use URL เป็น optional คือจะระบุหรือไม่ก็ได้ แต่กรณีจะขอ Verified Account ควรระบุเพราะอาจมีผลต่อการพิจารณา

หลังจากกด confirm ไปจะมีเงื่อนไขให้กดยอมรับ และหน้าสรุปสิ่งที่เราระบุไปทั้งหมดอีกครั้ง กดปุ่ม Create เป็นอันว่าเสร็จพิธี แต่เสร็จแบบไม่สุด เพราะก่อนที่เราจะพัฒนา LINE Bot ได้จะต้องตั้งค่าอีกนิดหน่อย ว่าแล้วก็กดเข้าไปที่ channel ที่เราสร้าง

ในหน้ารายละเอียดของ channel สิ่งที่เราจะต้องสนใจอันดับแรกคือ Messaging Settings

  • Channel Access Token: สร้างด้วยการกดปุ่ม Issue ทางด้านขวา โดยสามารถตั้งค่าอายุของ token ตอนสร้างได้ ซึ่งค่า 0 คือ token เป็นอมตะ ค่านี้หละที่เราจะเอาไว้ใช้ตอนพัฒนา Bot
  • Use webhooks: ตั้งค่าเป็น Enabled เพื่อรอรับ event trigger ผ่านทาง API
  • Webhook URL: URL ที่เป็น HTTPS สำหรับรับ trigger จาก LINE (ถ้ายังไม่มี ค่อยมากรอกภายหลังได้)
  • Allow bot to join group chats: ตั้งค่า Enabled เพื่ออนุญาตให้ Bot เข้ากลุ่มต่างๆได้

ถัดไปเป็นส่วนของ Using LINE@ features ที่ให้เราสามารถจัดการผ่าน LINE Official Account Manager ได้

  • Auto-reply messages: เป็นการตอบอัตโนมัติเมื่อผู้ใช้ส่งข้อความมา โดยสามารถตั้งค่าข้อความตอบกลับใน LINE Official Account Manager ได้ แต่กรณีที่เราจะใช้งาน Messaging API ก็แนะนำให้ disabled ไป เพราะเราจะพัฒนาส่วนที่ตอบกลับเอง(ไม่ต้องตอบเบิ้ล)
  • Greeting messages: เป็น welcome message อัตโนมัติ เมื่อผู้ใช้ add ตัว Bot เรา โดยสามารถตั้งค่าข้อความใน LINE Official Account Manager ได้

ส่วนสุดท้ายคือ Bot Infomations ที่จะมี QR code และ ID ของ Bot(ขึ้นต้นด้วยตัว @ เสมอ) ที่เราสร้าง สามารถนำไปใช้โปรโมทให้ผู้ใช้ LINE เพิ่มเป็นเพื่อนได้ และมี User ID ของเราเพื่อไว้ใช้ทดสอบส่งข้อความหาตัวเองได้

เพิ่ม Bot เข้ามาปุ๊บ Greeting message มาทันที

หมายเหตุ: User ID ภายใต้ Provider เดียวกัน จะมีค่าเหมือนกัน ถึงแม้จะต่าง Channel กันก็ตาม

3. การตั้งค่าความปลอดภัย

เราสามารถเพิ่มความปลอดภัยให้กับ LINE Bot ของเราโดยการจำกัดการเรียก API จาก IP Address ที่เราระบุได้ ซึ่งกรณีนี้ ต่อให้คนอื่นได้ Access Token ของเราไป ก็จะไม่สามารถใช้งานได้หากเราระบุ IP Address ที่อนุญาตไว้ วิธีการก็คือเข้าไปที่ Channel ที่ต้องการ คลิก tab ชื่อ Security Settings แล้วกดตุ่ม Add สีฟ้า

ถัดไปให้ระบุ IPv4 ที่ต้องการจำกัด ซึ่งเราสามารถระบุได้หลาย IP Address

กรณีนี้จะมีปัญหากับ server ที่จ่าย IP ไม่เป็นแบบ static IP เช่น Heroku

4. การบริการจัดการสมาชิกใน Project

การบริหารจัดการคนที่จะเข้ามามีส่วนร่วมกับ Project ของเราจะแบ่งเป็น 2 ประเภท

4.1 การบริหารจัดการสมาชิกใน Provider

ในหน้า Provider ของเรา เราสามารถเพิ่ม Roles หรือสมาชิกที่จะเข้ามาช่วยบริหารจัดการได้ ซึ่งในกรณีนี้ เมื่อเพิ่มสมาชิกแล้ว ตัวสมาชิกจะสามารถเพิ่ม Channel เองได้ แต่จะมีสิทธิ์เข้าถึงเพียงแค่ใน Channel ที่เขาสร้างเท่านั้น นั่นก็คือ ใครสร้างอันไหน ก็เข้าถึงได้เฉพาะของตัวเองเท่านั้น

โดยวิธีการก็คือกดปุ่ม add สีฟ้าเพื่อเพิ่มสมาชิก

จากนั้นก็ระบุอีเมลได้ทั้งแบบ single และ multiple เลย โดยที่สิทธิ์ที่เป็น Admin จะสามารถสร้าง Channel ได้ แต่สิทธิ์ Member จะไม่สามารถสร้าง Channel ได้

เมื่อกด confirm แล้ว จะมีอีเมลไปยืนยันกับเจ้าของเมลที่เราระบุไป

การ Accept จะเสร็จสมบูรณ์ได้ต่อเมื่ออีเมลดังกล่าวได้ลงทะเบียนกับ LINE ไว้แล้วเท่านั้น

4.2 การบริหารจัดการสมาชิกใน Channel

ส่วนนี้ผมว่าทุกคนน่าจะได้ใช้มากกว่า ก็คือการเพิ่มสมาชิกมาช่วยบริหารจัดการ LINE Bot ของเรา โดยเริ่มจากการเลือก Channel เป้าหมาย คลิกไปที่ tab ชื่อ Roles จากนั้นก็กดตุ่ม Add สีฟ้าเพิ่มสมาชิกได้เลย

ในหน้าเพิ่มสมาชิกของ Channel จะเหมือนกับหน้าเพิ่มสมาชิก Provider คือมีทั้งเพิ่มอีเมลแบบ Single และ Multiple แต่ที่จะสะดวกกว่าอีกหน่อยคือ จะมีหน้าที่แสดงอีเมลของสมาชิกใน Provider เพื่อให้เราสามารถเลือกเขามาบริหาร Channel นั้นๆได้เลย

เพิ่มเสร็จเรียบร้อย ก็จะมีเมลไป confirm กับเจ้าของอีเมลที่ระบุ

สำหรับความแตกต่างของสิทธิ์ Admin และ Member คือ Admin ก็จะสามารถบริหารทุกอย่างได้ เช่น issue ตัว Access Token ใหม่ หรือการระบุ Webhook URL เป็นต้น แต่หากเป็น Member จะเห็นรายละเอียดและสถิติของ LINE Bot ตัวนั้นเท่านั้น

สรุป

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

แบบแรก สร้างด้วย Dialogflow

แบบที่สอง สร้าง API เอง

สำหรับวันนี้ขอตัวลาไปก่อน ราตรีสวัสดิ์ LINE Developers

--

--

Jirawatee
LINE Developers Thailand

Technology Evangelist at LINE Thailand / Google Developer Expert in Firebase