สร้าง Line Chatbot ด้วย Line Messaging API และ Google Dialogflow โดยไม่ต้อง Coding

Suppawat Boonrach
TechNounia
Published in
4 min readAug 29, 2018

--

ขอบคุณบทความที่เป็นข้อมูลอ้างอิงในการเขียนแชทบอทของผมครับ

สร้าง LINE Chatbot แบบไม่แตะโค้ด : ตอนที่ 1 — แนะนำ Dialogflow ของคุณ Kaew Manussanun

[Dialogflow x LINE] สร้าง Chatbot LINE แบบง่ายๆ ด้วย Dialogflow และ LINE Bot Designer กันเถอะ ของคุณ Kajornsak P.

ก่อนอื่นขอบอกเลยนะครับ เป็นบทความแรกของผมเลยบน Medium.com แห่งนี้ ปกติผมไม่ค่อยได้แชร์ประสบการณ์หรือความรู้อะไรให้กับใครเท่าไรนัก แต่ตอนนี้ความคิดของผมนั้นเปลี่ยนไปแล้วครับ เลยอยากเอาการเขียนบอทง่ายๆ ขำๆ เอาไว้แก้เหงา ถ้ามีอะไรผิดพลาดก็ขออภัยไว้ล่วงหน้าด้วย หรือถ้ามีอะไรแนะนำสามารถบอกกล่าวกันได้ครับผม :)

ผมเองก็ไม่ใช่สาย Programming จ๋าอะไรนัก ออกไปแนว Engineering ซะมากกว่า ส่วนใหญ่ทำแนวๆนี้เล่นๆเพราะชอบเรียนรู้อะไรใหม่ๆครับ :) ดังนั้นบทความนี้จะลงลึกถึงขั้นตอนการทำมากกว่าทฤษฎีและที่มานะครับผม ขออภัยสำหรับผู้ที่สนใจ Content แนวฮาร์ดคอร์ทั้งหลายนะครับ T_T

บ่นมาเยอะ เข้าเรื่องกันดีกว่าครับ เดี๋ยวจะเบื่อซะก่อน

Line Chatbot คืออะไร???

หลายๆคนคงจำกันได้ว่ามีช่วงหนึ่ง จะมีเจ้าบอทตัวหนึ่งที่ชื่อว่า “บอทน้อย(botnoi)” ที่สร้างความเฮฮาให้กับผู้ใช้หลายๆคนครับ 555

ที่มา https://brandinside.asia/wp-content/uploads/2017/03/botnoi22.jpg

แม้เจ้าบอทน้อยจะดูตลกๆ เป็นมิตรกับผู้ใช้แบบนี้ ไม่ธรรมดานะครับ ถึงขนาดได้รับรางวัลจาก Line Bot Awards เลยทีเดียว ดูเพิ่มเติมที https://brandinside.asia/botnoi-win-line-bot-awards/

ผมยอมรับเลยว่าบอทน้อยเป็นปัจจัยหนึ่งที่ทำให้ผมอยากเขียนแชทบอทขึ้นมาใช้เองเลยครับ เริ่มกันเลยดีกว่า

ในส่วนที่ผมทำจะใช้งานอยู่สองส่วนครับ ได้แก่ Line Messaging API และ Google Dialogflow ครับ

ส่วนของ Line Messaging API

ที่มา http://thaiopensource.org/%E0%B8%A1%E0%B8%B2%E0%B8%A5%E0%B8%AD%E0%B8%87%E0%B8%97%E0%B8%B3-line-chat-bot-%E0%B8%81%E0%B8%B1%E0%B8%99

Line Messaging API จะมีไว้สำหรับส่งข้อมูลตอบโต้กับผู้ใช้ได้จากเซิร์ฟเวอร์ของเราครับ

สำหรับท่านไหนสนใจอ่านการทำ Line Chatbot เชิงลึก หรือศึกษาเพิ่มเติม ลองอ่านบทความ “ มาลองทำ Line Chat Bot กัน ” ของคุณ Anuchit Chalothorn ได้ครับผม

วิธีการตั้งค่าสามารถทำได้ดังนี้

1.เข้าไปที่เว็บไซต์ของ Line Developer ตาม URL นี้ครับ

https://developers.line.me/en

ทำการ log-in ด้วย Line Account ของเราครับผม

2.เมื่อทำการ log-in เข้ามาแล้ว มองหาแทบด้านซ้าย แล้วเลือก Products>Messaging API แล้วกด Start Now เลยครับ

3.เมื่อเข้ามาเจอหน้า Create new channel ให้ทำการกรอกชื่อที่ต้องการลงไป โดยยาวไม่เกิน 100 ตัวอักษร แล้วกด Next page เพื่อไปยังหน้าต่อไป

4.ทำการตั้งค่า channel information ดังนี้ให้เรียบร้อย

App icon => ตั้งค่าตามต้องการ ขนาดไม่เกิน 3MB, สกุลไฟล์ JPEG/PNG/GIF/BMP

App name => ตั้งค่าตามต้องการ ไม่เกิน 20 ตัวอักษร

App description => ตั้งค่าตามต้องการ ไม่เกิน 500 ตัวอักษร

Plan => Fixed มาแล้ว เป็น Developer Trial

Category/Subcategory => ตั้งค่าตามต้องการ

Email Address => อีเมลล์ที่ต้องการ

เมื่อเสร็จทำการกด Confirm แล้วจะข้ามมายังส่วนของ Confirm เพื่อให้เราตรวจเช็คข้อมูลอีกครั้ง ก่อนกดยอมรับข้อตกลงต่างๆ แล้วกด Create channel นี้ขึ้นมา

6.หลังจัดการตั้งค่าต่างๆเสร็จแล้ว เราจะได้ Channel ที่เราเพิ่ง Create ขึ้นมาสดๆร้อนเลยครับ อย่ารอช้า กดเข้าไปดูเลยครับ อิอิ :)

7.ตอนนี้เราจะเข้ามาอยู่ในส่วนของ Channel Settings ครับ จากนั้น Sroll down ลงมามองหาหมวดย่อย Messaging settings มองหา Use webhooks แล้วปรับเปลี่ยน Enabled แล้วกดเลือก Update ครับ

“Webhook นี้ เอาไว้ใช้ร่วมกับ URL ที่ได้มาจาก Google Dialogflow ครับผม เดี๋ยวได้พบกันอีกในขั้นตอนต่อๆไป”

8.ทำการกด Issue ค่า 2 ค่า ดังต่อไปนี้

Basic information > Channel secret

Messaging settings > Channel access token

ถ้าไม่ได้ต้องการให้การเข้าถึงหมดอายุ ตั้งไว้ 0 ชม. ครับ ว่าง่ายๆคืออยู่ต่อไป ตลอดกาลนั่นเอง 555

9.ทำการคัดลอกค่าๆต่างดังต่อไปนี้ไปไว้ใน Clipboard ก่อนครับ เอาไว้ไปใช้ใน Dialogflow ต่อไปครับ

Channel ID, Channel secret, Channel access token

เดี๋ยวจะข้ามไปในส่วนของ Google Dialogflow ก่อนแล้วจะกลับมาที่ Line Messaging API ในขั้นตอนหลังๆอีกนะครับ

ส่วนของ Google Dialogflow

ี่มา https://blog.dialogflow.com/images/dialogflow-logo.png

Dialogflow เป็น API ทางด้าน AI ของ Google โดยจุดเด่นของมันคือการรองรับการทำ Natural Language understanding โดยที่เราแทบไม่ต้องเขียนโปรแกรมอะไรเพิ่มเติมเลย ที่สำคัญมันฟรีด้วยครับ ผมเลยเอามาใช้นี่แหละครับ 555

สำหรับใครสนใจการทำบอทด้วย Dialogflow จริงจังเชิญอ่านบทความ “ลองทำแชท บอทง่ายๆด้วย Dialogflow กันเถอะ” ของคุณ Petch Kruapanich ได้เลยนะครับ เขียนไว้ละเอียดพอสมควรครับ

วิธีการตั้งค่าสามารถทำได้ดังนี้

1.เข้าไปที่เว็บไซต์ของ Dialogflow ตาม URL นี้ครับ

https://dialogflow.com

จะพบกับ Homepage หน้าตาดังภาพด้านบน กดเลือก GO TO CONSOLE มุมบนด้านขวาเลยครับ อย่าช้าครับผม

2.เมื่อเข้ามาแล้ว ทำการ log-in ด้วย Google Account ครับ

3.เมื่อเข้ามาแล้ว ให้สังเกตแทบบริเวณด้านซ้าย แล้วทำการกดเลือก Create agent ครับ

เสร็จแล้วให้ตั้งค่าต่างๆตามต้องการดังนี้ครับ

Agent name => ชื่อของ Agent ที่ต้องการ

Default Langauge => ภาษาเริ่มต้นที่ต้องการ

Default Time Zone => เขตเวลาที่ต้องการ

เมื่อตั้งค่าเสร็จแล้วให้ทำการกด Create ครับ

4.เมื่อเสร็จแล้วเราจะเข้ามายังหน้า Intents ของ Agent ของเรา ให้ทำการกด Create intent ขึ้นมาใหม่ครับ

ให้เราทำการตั้งชื่อให้ Intent ตามต้องการ และเราจะพบ 6 ห้วข้อต่างๆดังนี้ครับ

Contexts, Events, Training Phrases, Action and Parameters, Responses และ Fulfillment

แต่ ณ ที่นี่ จะกล่าวถึงเฉพาะ Training Phrases และ Responses ครับผม

Training Phrases =>ไว้สำหรับ Train เจ้า Agent ของเราให้เรียนรู้คำหรือ)ระโยคต่างๆที่เรากรอกให้ ส่วนนี้จะทำงานในลักษณะของ Machine Learning ครับ

Responses => ส่วนนี้มีไว้สำหรับให้เจ้า Agent ของเราทำการตอบโต้ผู้ใช้งานแบบสุ่มคำหรือประโยคที่เราทำการ Train มันไว้ครับ

ในส่วนนี้แล้วแต่ผู้อ่านเลยนะครับว่าจะ Train เจ้า Agent ของท่านอย่างไรบ้าง ทำตามความต้องการเลยนะครับ

เมื่อเสร็จแล้วก็กด Save ตามระเบียบครับ

5.ไปที่แทบด้านซ้าย มองหาเมนู integration ครับ เพื่อทำการ Embedded เข้ากับ Line Application ครับผม

ทำการกดเลือกให้ Line เป็น Enabled นะครับ แล้วจะมีหน้าต่างป๊อปอัพเด้งขึ้นมา ดังภาพด้านล่างครับ

ให้กรอกค่า Channel ID, Channel secret และ Channel Access Token ที่เราคัดลอกไว้ใน Clipboard ในขั้นตอนที่ 9 ในส่วนของ Line Messaging API มาลงในช่องดังกล่าว และทำการคัดลอก Webhook URL ไปไว้ใน Clipboard เพื่อไปกรอกที่ Line Messaging API > Channel settings > Webhook URL ครับผม

6.หลังจากกรอกค่าต่างๆเสร็จแล้ว ทำการกด Start เป็นอันเสร็จพิธี

ขั้นตอนสุดท้าย แต่ไม่ท้ายสุด…

ยังไม่ได้ทำการแอดบอทของเราเลย สามารถใช้การเพิ่มเพื่อนด้วย QR Code จาก Line Mobile Application ของเราครับ

ป.ล. อย่าไปแอดเจ้านี่นะครับ ผมไม่ได้ใส่ข้อมูลอะไรให้มันใน Dialogflow เลย 555

ลองเล่นบอทที่เราสร้างขึ้นมา

ตัวอย่างจากเจ้า “บอทแก่(Kae_boT)” ที่ผมสร้างขึ้นมาก่อนหน้านี้ครับ ซึ่งมันยังเอ๋อๆอยู่ ต้องพัฒนาอีกเยอะครับ 555

ก็จบกันไปแล้วนะครับ สำหรับการทำ Line Chatbot ด้วย Line Messaging API ร่วมด้วย Google Dialogflow แม้จะ Coding ไม่เป็นก็ทำตามได้ง่ายๆ ขอบคุณทุกท่านที่อ่านบทความนี้กัน มีข้อสงสัยอะไรก็ลองคอมเม้นท์ไว้ได้เลย ถ้าเห็นว่าบทความนี้มีประโยชน์ฝากแชร์กันด้วยนะครับผม :)

--

--

Suppawat Boonrach
TechNounia

A hybrid Robotic/Chemical Engineer with Nano Engineering Degree