LINE Bot—วิธีการเชื่อมต่อกับ Google Sheet

หลังที่เข้าไปแอบเก็บความรู้ในกลุ่ม LINE Developers Group Thailand ก็พบว่ามีเพื่อนๆ หลายคนต้องการเชื่อมต่อ LINE Bot ของตัวเองเข้ากับ Google Sheet เพื่อที่จะอ่านข้อมูลจาก Google Sheet ไปให้ LINE Bot ตอบกลับผู้ใช้งานหรือต้องการบันทึกข้อมูลที่ผู้ใช้งานส่งให้ LINE Bot ซึ่งไม่ว่าจะท่าไหนๆ ก็ทำได้ครับ ก่อนอื่นมาดูกันก่อนว่าเราจะเชื่อมต่อระหว่าง LINE Bot เข้ากับ Google Sheet ด้วย Apps Script ได้อย่างไร ถ้าพร้อมแล้วก็ไปดูกันเลยครับ 🎢


1. สร้าง Channel ใน LINE Official Account

— ก็คิดอยู่ว่าจะเขียนส่วนนี้ดีหรือเปล่าเพราะหลายๆ บทความเพื่อนๆ ก็เขียนได้ดีมากแล้ว แต่พอดีว่าหน้า Console ได้เปลี่ยนไปแล้วก็ขอบันทึกวิธีการไว้เลยแล้วกัน เพื่อนๆ จะได้อ่านในบทความนี้ไปเลยทีเดียว ก็ให้เริ่มจากเข้าไปที่เว็บไซต์ https://www.linebiz.com/th/service/line-account-connect/ แล้วทำการเลือก สร้างบัญชีทั่วไป แล้วต่อด้วยการ Log in ด้วย LINE Account ได้เลย (ถ้าใครมี Business Account ก็ได้จ้า หรือถ้าไม่มีทั้งสองก็ Create an account ได้เลย)

— ทำการกรอกข้อมูลให้ครบตามที่กำหนด แล้วต่อด้วยการยืนยันข้อมูล ระบบก็จะแจ้งว่าได้ LINE Official Account มาแล้วพร้อม ID ไว้แจกเพื่อนๆ แล้วครับ🤖 หลังจากนั้นก็ให้จิ้มไปที่ LINE Official Account Manager ต่อได้เลย แล้วก็ต้องยอมกดยอมรับเงื่อนไขโดยไม่มีข้อแม้ (อยู่ดีๆ โทรศัพท์ก็ดัง พบว่า LINE Official Account ที่สร้างใหม่จะแอดเฟรนซ์กับ LINE ID ที่ใช้สมัครให้แบบอัตโนมัติเลยครับ)

— ระบบจะตั้งค่าเบื้องต้นในโหมดการตอบกลับเป็น บอต ตามที่ต้องการไว้รอเลย ส่วนใครที่ต้องการเป็นโหมด แชต ก็ให้ไปที่เมนู ตั้งค่า –> ตั้งค่าการตอบกลับ –> ตั้งค่าเบื้องต้น –> เลือกโหมดแชต หรือ บอต (ตอนนี้ยังทำงานพร้อมกันทั้งสองโหมดไม่ได้น่ะครับ) ในโหมดบอต อย่าลืมปิด ข้อความตอบกลับอัตโนมัติ ด้วยน่ะครับ

— ยังอยู่ที่การตั้งค่า ให้เลือกเมนู Messaging API –> ใช้ Messaging API

— ต่อด้วยการกำหนด Provider ให้บอต หากมีนโยบายหรือข้อกำหนดก็ให้ใส่ได้เลย แล้วต่อด้วยจิ้ม ตกลง เบาๆ

— เราก็จะได้ LINE Official Account ในโหมด บอต และใช้ Messaging API ในการพัฒนาครับ ในส่วนที่จะต้องใช้ในบทความนี้คือ ช่องกรอกลิ้งก์ Webhook ที่เราจะเอาลิ้งก์ Webhook ที่ได้จาก Apps Script ใน Google Sheet มาใส่ครับโดยให้เว้นไว้ก่อนค่อยมาใส่ทีหลังได้ครับ หลังจากนี้ให้ไปตั้งค่าเพิ่มเติมที่ LINE Developers โดยการจิ้มลิ้งก์ด้านล่างได้เลยครับ

— ในหน้า LINE Developers เราจะเจอกับ Providers ที่สร้างไว้และ Channel (LINE Official Account) ต่างๆ ที่สร้างไว้ด้วยครับ จากนั้นให้เราเลือก LINE Official Accountในโหมด บอต ที่ได้สร้างไว้

— เข้าไปในเมนู Message API ให้เลื่อนลงมาด้านล่างสุดเพื่อสร้าง Channel access token ที่จะต้องใช้ในการเชื่อมต่อครับ ให้จิ้มเบาๆที่ Issue ก็จะได้ Channel access token ยาวๆ มาหนึ่งอันครับ เก็บไว้ให้ดีน่ะอย่าไปบอกใคร


2. สร้าง Code ด้วย Apps Script ใน Google Sheet

— ตามมาต่อกันด้วยการเขียน Code ด้วย Apps Script ใน Google Sheet เพื่อเชื่อมต่อกับ LINE Bot ที่ได้สร้างไว้ในข้อ 1 ให้เริ่มด้วยการสร้างไฟล์ Google Sheet ด้วยการพิมพ์ sheet.new ในช่อง URL ของเว็บบราวเซอร์ได้เลย อย่าลืมตั้งชื่อไฟล์ให้เรียบร้อย แล้วให้ไปที่เมนู Tools –> Script editor เพื่อเปิด Apps Script ขึ้นมาครับ

— มาเริ่มเขียน Code กันเลยดีกว่าครับ โดยผมจะทดสอบการเชื่อมต่อด้วยการสร้าง Echo Bot นั่นคือเวลาที่ผู้ใช้พิมพ์ข้อความส่งมา บอต ก็จะตอบข้อความนั้นๆ กลับไปให้ผู้ใช้ครับ เริ่มด้วยกำหนดตัวแปรเพื่อกำหนด Sheet ที่จะเชื่อมต่อ และอย่าลืม Copy Google Sheet ID มาใส่ใน Code ด้วยน่ะครับ โดยให้ Copy เฉพาะ Google Sheet ID ที่อยู่ใน Link URL มาครับ

https://docs.google.com/spreadsheets/d/<Google Sheet ID>/edit#gid=0

— เพื่อความสะดวกในการดู Log เลยจะติดตั้ง Libraries ที่ชื่อว่า Better Log เพิ่มเข้ามาใช้งานแทน Log เดิมใน Apps Script ครับ ก่อนอื่นไปดูวิธีการติดตั้งที่ https://github.com/peterherrmann/BetterLog แล้ว Copy project key มาเลยครับ

— แล้วให้ไปที่เมนู Resources –> Libraries…

— ใส่ project key ที่ได้มาเลยครับ อย่าลืมเลือก version ล่าสุดครับ

— หลังจากเพิ่ม Better Log แล้วก็ต้องมาเพิ่ม Code เพื่อเริ่มใช้งานกันเลยครับ

— หากลองกด Run Code ด้านบน แล้วจะมี Sheet ชื่อ Log มาให้เพิ่มแบบอัตโนมัติ (อย่าตั้งชื่อ Sheet ว่า Log ไว้ก่อนน่ะครับ) พร้อมข้อความที่กำหนดไว้ใน Code ครับ

— หลังจากที่ได้ Better Log มาใช้งานแล้วก็มาแก้ไขเพิ่ม Code โดยเปลี่ยนชื่อจาก myFunction() มาเป็นฟังก์ชั่น doPost(e) แทน หลังจากนั้นเราจะ Log ค่า Event ต่างๆ ที่จะส่งมาจาก LINE Bot มาดูได้ด้วยครับ (ดูเพิ่มเติมได้ที่ https://developers.google.com/apps-script/guides/web)

— มาทำการสร้างลิงก์ Webhook ที่จะเอาไปใส่ใน LINE Bot กันต่อเลย เริ่มจากไปที่ เมนู Publish –> Deploy as web app…

— กำหนด Project version และการเข้าถึงตามรูปได้เลย (ในส่วน Project version หากมีการอัพเดทหรือแก้ไข Code ให้เลือกเป็น New ทุกครั้ง ไม่อย่างนั้นระบบจะไม่อัพเดท Code ล่าสุดให้ครับ เพื่อนๆ คนไหนมีวิธีที่ดีกว่านี้แชร์มาให้ด้วยน่ะครับ) แล้วอย่าลืม Allow ด้วยน่ะ

— หลังจากนั้นให้ Copy Link ที่ได้ไปใส่ไว้ในลิงก์ Webhook ของ LINE Bot ได้เลย

— หากลองกดอัพเดทลิงก์ Webhook ดังกล่าวหากไม่มี Error เตือนจะมี Event ที่ LINE Bot ส่งมาให้ดังรูปด้านล่างนี้ครับ เป็นอันว่าเราเชื่อมต่อ Google Sheet เข้ากับ LINE Bot สำเร็จแล้วครับ

— ต่อไปเราจะทำการเขียนฟังก์ชันให้ตอบกลับไปที่ LINE Bot ด้วยข้อความที่ บอต ส่งมาให้ โดยเริ่มจากทดลอง Log ค่าข้อความที่ได้มาดูก่อน

— ต่อมาก็เขียนฟังก์ชันให้ส่งข้อความกลับไปที่ LINE Bot อย่าลืม Copy Channel Access Token ที่ได้จากข้อ 1 มาใส่ด้วยน่ะครับ

— สำหรับฟังก์ชันการส่งข้อความกลับไปที่ บอต ให้ Copy Code ด้านบนไปใส่ต่อท้ายในไฟล์ Script เดิมก็ได้เลยครับกด Save และอย่าลืมแก้ไข Version update ด้วยครับ

— เพียงเท่านี้เราก็จะได้ Echo Bot ตามที่ต้องการแล้วครับ 👍


ท้ายสุด นี่ก็เป็นเพียงการทดสอบการรับข้อความจาก LINE Bot และส่งข้อความกลับด้วย Google Sheet ครับ ยังไม่รวมกระบวนท่าการเขียนข้อมูลลงใน Google Sheet หรืออ่านข้อมูลจาก Google Sheet ตามเงื่อนไขที่กำหนดแล้วตอบกลับไปที่ LINE Bot น่ะครับ สำหรับในส่วนของ Log เพื่อนๆ ลองส่งข้อความแบบต่างๆ แล้วดู Log น่ะครับว่าใน Object ที่ส่งมามีอะไรบ้างที่จะช่วยให้เราจัดการข้อมูลที่ LINE Bot ส่งมาได้ตามต้องการ ก็หวังว่าบทความนี้จะเป็นแนวทางในการให้เพื่อนๆ นำไปใช้งานได้ต่อไปน่ะครับ Happy Coding…Beep Beep…🤖🤖🤖


ประกันรถใกล้หมดแล้ว ไม่อยากจ่ายแพง อยากได้ราคาดีที่สุดคลิกเช็คเบี้ย ฟรี!! ที่นี่🔗 https://bit.ly/3sEMzHO

โปรโมชั่น คูปองส่วนลด และดีล ที่ดีที่สุดของร้านค้าออนไลน์กว่า 300 แบรนด์พร้อมรับเงินคืนจาก ShopBack
🔗 https://bit.ly/3c4tlmV

Ruk-Com จดโดเมน-เช่าโฮสต์ ราคาประหยัด พร้อมให้บริการใน 1 นาที
🔗 http://bit.ly/36q8A12