สร้าง LINE ChatBot ด้วย SDK (Node.js) และ Deploy on Heroku Platform as a Service (Paas)

นึกอยากจะลองสร้าง Line Bot ที่เขียนฝั่ง backend เอง ก็เลยเลือกภาษาที่ตัวเองพอจะเขียนได้ ซึ่งตอนนี้ก็มี SDK support อยู่หลายภาษามาก เลือกมา 1 ตัวที่คิดว่าตัวเองจะพอไหว

Image for post
Image for post
https://developers.line.biz/en/docs/messaging-api/line-bot-sdk/

ก็เลยเลือก Node.js เพราะก็สาย Fontend เลือก SDK ที่ support ภาษาที่เลือกได้ก็เข้าไปที่ repo ของ SDK นั้นก็จะเจอ ตัวอย่างง่าย ๆ ของการสร้าง Line Bot ที่เป็น Code Examples ของ Line SDK (NodeJS) ไม่รอช้า COPY , PAST ในทันใด ใส่ไว้ใน Editor คู่ใจอย่าง VS Code (แนะนำเพื่อนคนใดยังไม่เคยใช้ ย้ายมาใช้กันโล้ดของเขาดีจริง ๆ ) ผมขอข้ามขั้นตอนนี้นี้ไป (COPY , PART แล้วก็ลอง npm run start ดูหน่อยว่าทำงานได้ก็ลองเอาขึ้นไปไปลุยบน heroku server กันเลย

Create New App บน heroku

เริ่มต้นที่จะใช้งาน service ของ heroku ก็ต้องสมัครเป็นสมาชิกของเขาซะก่อน และก็เริ่มสร้าง App ของเรา

Image for post
Image for post
https://dashboard.heroku.com/new-app
Image for post
Image for post

App ใหม่ก็พร้อมที่จะใช้งาน

ติดตั้ง heroku-cli บน local

วิธีการที่แนะนำ และค่อนข้างสะดวกในการที่จะใช้งาน heroku server ก็การติดตั้ง heroku-cli (heroku command line) ก็ติดตั้งลงเครื่องตาม OS เครื่องตัวเองให้เรียบร้อย และก็มาเริ่ม login heroku กัน

มา Login เข้า Heroku กันเลย

Image for post
Image for post
Image for post
Image for post

เปิด terminal ขึ้นมา check $heroku -h ถ้าขึ้นแบบนี้ก็ใช้ได้

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

ทำามขั้นตอนการ deploy app ใน step deploy

Image for post
Image for post

ใน step การ git push heroku master จะใช้เวลาค่อนข้างนานพอสมควร รอ…

Image for post
Image for post

ทดสอบเข้าหน้า GET hook ของ Bot เรา ด้วยการกด ปุ่ม “Open App” ตรงขวามือด้านบน

ขั้นตอนการสร้าง Provider BOT ที่ ฝั่ง Line

คนที่ยังไม่เคยใช้งาน Line Application ก็ให้เข้าไปสมัคร (เอาจริงก็คงมีน้อยมาก ๆๆๆๆ) และกดเข้าหน้า https://developers.line.biz/console/ นี้
และทำตามขั้นตอน จากบทความนี้ ปฐมบทการสร้าง LINE Bot สร้างให้เรียบร้อย

ตั้งค่า LineBot

Channel secret : {your secret}
Channel access token (long-lived) : {your access token}
Use webhooks: Enabled
Webhook URL : {your heroku url} example: https://linebot-medium.herokuapp.com/callback
เพิ่มเติม
Auto-reply messages : Disabled (ปิดข้อความกรณีตอบกลับจาก Bot)
Greeting messages : Disabled (ปิดข้อความตอบกลับผู้ใช้งานใหม่)

ทดสอบการทำงาน

เพิ่ม LineChatBot ของเราเป็นเพื่อนเราก่อน

Image for post
Image for post
Image for post
Image for post

จะแน่ใจได้อย่างไรว่าเป็นการตอบกลับจาก webhook บน heroku ที่เราสร้าง ให้ไปดูที่ view logs ตามภาพนี้

Image for post
Image for post

ขอบคุณทุกท่านที่ติดตามมาถึงท้ายบทความนี้ มีข้อสงสัยหรือข้อผิดพลาดที่อยากจะเสริม comment ทิ้งใต้บทความนี้ไว้ได้เลย แล้วพบกันใหม่บทความหน้าครับ

Written by

Senior Developer @Telecom, Full Stack Developer [Subscribe Me @poolsawat.com]

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store