PAWIT.PW

My dedicated space, focusing on Power Apps and other Power Platform stuff 😉

Using Power Automate with LINE Messaging API (ภาษาไทย)

ทักทาย

สวัสดีครับ หลังจากห่างหายไปนาน วันนี้ตั้งใจมาแชร์สิ่งที่น่าจะเป็นประโยชน์กับหลายท่านในช่วงนี้ นั่นก็คือการส่งแจ้งเตือน / ส่งข้อความไปทาง LINE ด้วย LINE Messaging API


ที่มา

LINE Notify

หลายๆที่ไม่ว่าจะเป็น developer บุคคลธรรมดา หรือในนามบริษัท ก็กำลังวุ่นกับการหาเครื่องมือใหม่มาทดแทน ซึ่งแน่นอนว่าก็พอมีตัวเลือกอื่นอยู่

แต่เราต้องไม่ลืมว่า คนที่เป็น End user นั้น ไม่ใช่ทุกคนจะยอมเปลี่ยน ยิ่งโดยธรรมชาติของคนไทยเอง คุ้นชินกับการใช้ LINE มากอยู่แล้ว เลยไม่ใช่เรื่องแปลกที่หลายๆที่ยังจำเป็นต้องใช้ LINE เหมือนเดิม

LINE Messaging API

วันนี้เลยเป็นโอกาสดีที่ผมจะมาแสดงตัวอย่าง ของการใช้งาน LINE Messaging API ร่วมกันกับ Power Automate


สิ่งที่ต้องเตรียม

  1. LINE Business ID – สมัครใช้งานได้ที่ https://account.line.biz/login
  2. LINE Developer – สมัครใช้งานได้ที่ https://developers.line.biz/console/
  3. Power Automate Premium – การใช้เรียกใช้งาน API ภายนอกด้วย Power Automate นั้น จำเป็นต้องใช้ license ตัวนี้

หากทั้งหมดนี้พร้อมแล้ว งั้นเราไปเริ่มกันเลย!


สร้าง Provider

โดยเราสามารถตั้งชื่อว่าอะไรก็ได้ ตั้งเป็นชื่อเรา หรือว่าชื่อบริษัทก็ได้เช่นกัน


สร้าง Channel

หลังจากเราได้ Provider มาแล้ว ถัดมาเราจะสร้าง Channel ซึ่งเปรียบเสมือนตัวตนของ Bot ของเราที่จะใช้ในการส่งข้อความ

กด Create a Messaging API channelกด Create a Messaging API channel

ซึ่ง ณ ตอนที่เขียนบทความนี้ การจะสร้าง Channel นั้น เราต้องสร้างบัญชี LINE Official Account ขึ้นมา ดังนั้นกด Create ไปได้เลย


เปิดใช้งาน Messaging API สำหรับ LINE OA

บัญชี LINE OA ที่สร้างขึ้นนั้นในตอนแรกจะยังไม่ได้เปิดใช้งาน Messaging API ซึ่งเราต้องไปเปิดก่อน โดยการเข้าไปที่ Setting ของ LINE OA

ทำการเลือก Provider ที่ได้สร้างไว้ในขั้นตอนก่อนหน้านี้

เพียงเท่านี้ LINE OA ของเราก็พร้อมใช้งาน Messaging API แล้ว หากลองกลับไปดูที่ LINE Developers จะเห็นว่ามีชื่อ LINE OA ของเราเพิ่มขึ้นมา


สร้าง Power Automate Flow สำหรับรองรับ Webhook

ข้อนี้ถ้าใครไม่คุ้นเคยกับการทำ API อาจไม่คุ้นเคย อธิบายง่ายๆ Webhook คือการที่เซิฟเวอร์จะส่งสัญญาณ (HTTP Request) มาหาเรา เมื่อมีเหตุการณ์ใดๆเกิดขึ้น ซึ่งเราต้องมีเซิฟเวอร์ปลายทางของเราเอาไว้รับสัญญาณนี้เช่นกัน ซึ่งเราจะใช้ Power Automate เป็นปลายทาง

  • มีคนส่งข้อความหาบอทของเรา
  • มีคนเพิ่มบอทของเราเป็นเพื่อน
  • มีคนกดบล็อค/ปลดบล็อคบอทของเรา
  • มีคนดึงบอทเข้าแชทกลุ่ม

ซึ่งเราต้องใช้ข้อมูลตรงนี้ เพราะว่าการที่เราจะส่งข้อความหาบุคคลหรือส่งเข้ากลุ่มใน LINE ได้ เราต้องรู้ ID ของคน/กลุ่มนั้นเสียก่อน ซึ่งข้อมูลที่ได้จาก Webhook จะเป็นตัวบอกเรา

ดังนั้น เราไปที่หน้าเว็บของ Power Automate และสร้าง Flow ได้เลย โดยตั้งค่าดังนี้

  • Type: Instant cloud flow
  • Trigger: When an HTTP request is received

เมื่อเข้าสู่หน้า Flow Designer แล้ว อย่างแรกเลยคือให้ปรับ Who can trigger the flow ให้เป็น Anyone ก่อน ไม่อย่างงั้น LINE จะส่ง Request มาที่ flow นี้ได้

ถัดมา ให้เพิ่ม Action ที่ชื่อ Compose เข้ามา และใส่ Body ที่ได้มากจาก Trigger ด้านบนเข้าใน Inputs ของ Compose

เรียบร้อย ในส่วนของ Webhook เราทำแค่นี้ กด Save flow ได้เลย

เมื่อ Save เรียบร้อยให้ลองคลิกที่ Trigger manual ของเรา สังเกตว่า HTTP URL ตรงนี้มีข้อมูลขึ้นมาแล้ว ให้ก๊อปตรงนี้ไว้

กลับมาที่ LINE Developers ให้กดเข้าที่ Channel ที่เราเพิ่งสร้างมา แล้วไปที่แท็ป Messaging API

กด Edit Webhook URL

วาง URL ที่ได้จาก Power Automate แล้วกด Update

กดเปิด Use webhook ด้วย

เพียงเท่านี้ LINE ก็พร้อมที่จะส่ง Request มาหาเราเมื่อมีเหตุการณ์ใดๆเกิดขึ้น


แอดเพื่อนกับบอท / ดึงบอทเข้ากลุ่ม

ขั้นตอนนี้เราจะดูว่า Webhook ของเราใช้งานได้ไหม ลองแอดเพื่อนหาบอท หรือดึงบอทเข้ากลุ่มดู

ลองแอดเพื่อนกับบอทดู

ลองดึงบอทเข้ากลุ่มด้วย กรณีอยากให้บอทส่งข้อความเข้ากลุ่ม

ทีนี้ลองมาดู Run history ของ flow จะเห็นว่า flow ของเราเริ่มทำงานแล้ว นั่นก็เพราะ LINE เริ่มส่ง Webhook มาที่ flow ของเราแล้วนั่นเอง

ซึ่งตรงนี้เราจะได้ User ID ของคนที่แอดเพื่อนมาหาบอทแล้ว ให้เก็บตรงนี้ไว้ เพราะเวลาเราจะส่งข้อความหาใคร เราต้องใช้ User ID

เช่นเดียวกันกับกรณีที่ดึงบอทเข้ากลุ่ม เราจะได้ Group ID มาแทน


สร้าง Token สำหรับเรียก Messaging API

ตอนนี้เรามีทุกอย่างพร้อมแล้ว เรามี User ID / Group ID ที่เราจะส่งข้อความหาแล้ว ใกล้ได้เวลาที่จะให้บอทส่งข้อความแล้ว

แต่ก่อนหน้านั้น เราต้องมีกุญแจ (Token) ที่เป็นเสมือนกุญแจ ที่จะทำให้ Power Automate สามารถสั่งงาน LINE Messaging API ได้เสียก่อน

วิธีการจะได้มาก็ง่ายๆแค่กด Issue จากหน้า Channel ของบอทของเรา

กดแล้วเราจะได้ Token ยาวๆแบบนี้มา เก็บให้ดี!


สร้าง Flow สำหรับส่งข้อความ

เอาล่ะ ได้เวลาที่จะส่งข้อความจริงๆแล้ว ซึ่งในขั้นตอนนี้ flow ของแต่ละท่านอาจจะแตกต่างกันออกไปตามแต่การใช้งานเลย ซึ่งผมจะยกตัวอย่างเป็น Instant cloud flow ง่ายๆที่เมื่อกด Run ตัว flow ก็จะสั่งให้บอทส่งข้อความทันที ซึ่งแต่ละท่านก็นำไปประยุกต์เข้ากับตัวเองได้เลย

เราจะใช้ action HTTP ในการส่งข้อมูลออกไป โดยตั้งค่าดังนี้

  • URI: https://api.line.me/v2/bot/message/push
  • Method: POST
  • Authentication: Raw
    • Bearer [token]

ส่วน Body ใส่เป็น JSON ลักษณะนี้

เสร็จแล้วลอง Save และ Run flow ดู

เราก็จะได้รับข้อความที่ส่งมาจากบอทของเราเรียบร้อยแล้ว

เป็นอันเรียบร้อย เราสามารถส่งข้อความได้แบบเดิมแล้ว เพียงแต่เปลี่ยนรูปแบบแค่นั้นเอง

ซึ่งตัว LINE Messaging API นั้นสามารถใช้ได้อีกยาวนานเลยทีเดียว


ค่าใช้จ่าย

เรื่องที่ไม่พูดถึงไม่ได้นั่นก็คือค่าใช้จ่าย ตัว LINE Messaging API นั้นมีจำกัดโควตาการใช้ฟรี หากต้องการส่งข้อความจำนวนมากๆ ก็จะมีค่าใช้จ่ายเพิ่มเติม ซึ่งมีค่าใช้จ่ายดังนี้

สามารถอัพเกรดหรือดูรายละเอียดเพิ่มเติมได้จาก

บัญชี LINE OA ของท่าน > Settings > Monthly plan

ข้อควรระวังคือจำนวนข้อความที่นับนั้น ถ้าเป็นการส่งข้อความเข้าในกลุ่มที่มีสมาชิก 10 คน การส่ง 1 ข้อความนั้นจะถูกนับเป็น 10 ข้อความทันที ดังนั้นอย่าลืมคำนวณค่าใช้จ่ายให้พอดีนะครับ!


แหล่งข้อมูลเพิ่มเติม

ในบทความนี้สาธิตตัวอย่างการใช้งาน LINE Messaging API และ LINE Webhook แบบง่ายๆเท่านั้น ซึ่งทั้งหมดยังมีรายละเอียดอีกมากที่สามารถทำและศึกษาเพิ่มเติมได้ครับ


Leave a Reply

Your email address will not be published. Required fields are marked *