Messaging API คืออะไร ทำอะไรได้บ้าง มีวิธีการใช้งานอย่างไร?

Messaging API

ปัจจุบันคนไทยนั้นแทบทุกคนนั้นมีแอปพลิเคชัน Line อยู่แล้วในมือถือเพื่อใช้ในการติดต่อสื่อสารพูดคุยกับครอบครัว หรือติดต่องานต่างๆ คุยกับลูกค้า ส่วนใครที่เป็นพ่อค้าแม่ค้าออนไลน์ ก็อาจจะรู้จักกันอยู่แล้วสำหรับ Line@ แต่บางคนอาจจะมองว่ายังไม่เห็นมีความจำเป็นเลยที่จะใช้ line@ หรือ lineOA Messaging API เพราะเราขายของไม่เยอะและส่วนใหญ่อาจจะยังไม่รู้ว่าปัจจุบันนั้นเราสามารถสมัครได้ฟรี

โดย Feature ของ Line@ นั้นมีให้ร้านค้าได้ใช้เยอะแยะมากมายโดยวันนี้เราจะมาแนะนำ Feature เด็ดของ Line@ ซึ่งในวันนี้เราจะพาทุกท่านมารู้จักกับ Line Bot หรือ Line Messaging API ซึ่งปัจจุบันนั้น นับว่ามีบทบามสำคัญอย่างมาก เนื่องจากมีบริการที่ครอบคลุม สามารถอำนวยความสะดวกให้กับผู้ใช้งานได้เป็นอย่างดี และตอบโจทย์การใช้ชีวิตประจำวัน ตั้งแต่ “คุย – ประชุมงาน – ช้อปปิ้ง – สั่งอาหาร – จ่ายเงิน – ดูซีรีส์ – อ่านข่าว” ที่ตอบโจทย์กับธุรกิจต่าง ๆ สามารถช่วยผลักดันธุรกิจให้เติบโตได้อย่างมีประสิทธิภาพ และต่อยอดการทำธุรกิจได้เป็นอย่างดี รวมทั้ง LINE ยังมีเครื่องมือที่ชื่อว่า LINE Messaging API line api มีอะไรบ้าง ที่จะช่วยสร้างประสบการณ์ใหม่ ๆ ในการสื่อสารระหว่างธุรกิจกับลูกค้าได้อีกด้วย

สารบัญเนื้อหา

Line assaging API process

Line Messaging API คืออะไร? 

Line Messaging API คือ API หรือเครื่องมือที่จะทำหน้าที่เป็นตัวกลางที่จะเชื่อมต่อ Server ของเราเข้ากับห้องแชตของ LINE ทำให้ผู้ใช้งานสามารถเขียนโปรแกรมเพื่อสร้างบริการที่ต้องการ ผ่านการส่งข้อความและโต้ตอบกับผู้ใช้ในลักษณะ Chatbot นั่นเอง โดยนอกจาก Chatbot แล้ว ยังสามารถพัฒนาระบบต่าง ๆ ให้มาอยู่ใน Ecosystem ของ LINE เพื่อช่วยสร้างประสบการณ์ใหม่ ๆ ให้ลูกค้าได้ เช่น LIFF, LINE Beacon เป็นต้น

หรือพูดกันแบบง่ายๆ LINE Messaging API คือ API หรือเครื่องมือที่จะทำหน้าที่เป็นตัวกลางที่จะเชื่อมต่อ Server ของเราเข้ากับห้องแชตของ LINE ทำให้เราสามารถเขียนโปรแกรมเพื่อสร้างบริการที่เราต้องการ ผ่านการข้อความและโต้ตอบกับผู้ใช้ในลักษณะ Chatbot นั่นเอง

Messaging API ทำอะไรได้บ้าง?

Send reply messages 

ตอบโต้กับ users บน LINE Official Account ด้วย LINE Bot โดยสามารถเลือกรูปแบบในการตอบกลับข้อความได้หลากหลาย 

Send messages at any time

 สามารถส่งข้อความโดยตรงหา users บน LINE Official Account ได้ตลอด 24 ชั่วโมง ซึ่งความพิเศษคือข้อความบางรูปแบบสามารถส่งได้จาก LINE Bot เท่านั้น ผู้ใช้งานทั่วไปไม่สามารถส่งเองได้ 

Various message types

มีรูปแบบข้อความให้เลือกหลากหลาย ได้แก่

  • Text message (ข้อความตัวอักษร)
  • Sticker message (สติ๊กเกอร์)
  • Image message (รูปภาพ)
  • Video message (วิดีโอ)
  • Audio message (ข้อความเสียง)
  • Location message (ตำแหน่งที่อยู่)
  • Image map message (รูปภาพที่ออกแบบกราฟฟิคและระบุพิกัดในการฝังลิงก์ได้ตามต้องการ) 
  • Template message (ชุดข้อความที่ออกแบบ Layout มาสำหรับ LINE Bot)
  • Flex Message (ชุดข้อความที่สามารถออกแบบ Layout ได้ตามต้องการ)

Get content sent by users

สามารถเก็บข้อมูลต่าง ๆ ที่ users ส่งมาได้อย่างอัตโนมัติ เช่น รูปภาพ, วิดีโอ หรือไฟล์ต่าง ๆ โดยการใช้ Message IDs

Get user profiles

สามารถเก็บข้อมูลโปรไฟล์ของ users ได้ ไม่ว่าจะเป็น User ID, ชื่อที่แสดง, รูปโปรไฟล์ หรือ สถานะข้อความ เพื่อใช้ในการที่จะใช้แบ่งกลุ่มของผู้ใช้ (Segmentation) และกำหนดกลุ่มเป้าหมายได้ (Retargeting)

Join group chats

สามารถใช้งานแชทกลุ่มได้ และสามารถเก็บข้อมูลของ users แต่ละคนที่เป็นสมาชิกในกลุ่มได้ 

Dynamic Rich menus

สร้าง Rich Menu และออกแบบได้ตามต้องการ ซึ่งจะสามารถออกแบบได้หลากหลาย หรือออกแบบได้ Dynamic มากขึ้น เช่น User แต่ละคนอาจจะเห็น Rich Menu ที่แตกต่างกัน ในแต่ละสถานการณ์

Use beacons

ใช้งานคู่กับ LINE Beacon ซึ่งเป็นอุปกรณ์ที่ทำหน้าที่ Trigger บุคคลหรือลูกค้าที่ใช้แอปพลิเคชัน LINE ที่เข้ามาในรัศมีของสัญญาณ เหมาะกับธุรกิจที่มีหน้าร้าน และต้องการดึงลูกค้าหน้าร้าน ใเข้ามาเป็นลูกค้าบน LINE Official Account

Account link

สามารถเชื่อมโยงบัญชีของลูกค้าที่มีข้อมูลหลังบ้านอยู่ในฐานข้อมูลอื่น เข้ามาเชื่อมกับบัญชีของลูกค้าบน LINE Official Account ได้อย่างปลอดภัย

การทำงานของ Messaging API (LINE API)

Messaging API ทำการเชื่อมต่อระหว่าง “user” ผ่านทาง LINE official account หรือ LINE@ account ซึ่งด้วย Messaging API นี้เราจะสามารถ accept friend รวมถึงส่ง message หา user คนอื่นๆ ที่ add account เราเป็นเพื่อน  โดยผ่านหน้า LINE@ Manager ที่เราตั้งไว้ หรือ ส่งออกจากจาก server ของเราก็ได้ในรูปแบบ interactive โต้ตอบ

การใช้งสาน Messaging API ทำให้คุณสามารถส่งข้อมูลระหว่าง server ของเรา ไปยัง user LINE ผ่านทาง LINE Platform ซึ่ง Request ที่ใช้ส่งข้อมูลต้องอยู่ในรูป JSON format โดยตัว server เราจะต้องเชื่อมต่อกับ LINE Platform และเมื่อ มี user เพิ่ม account LINE เราเป็นเพื่อน หรือ ส่งข่อความมาหาเรา ทาง LINE Platform จะทำการส่ง request มายัง server ที่เราลงทะเบียนผูกไว้กับ LINE account นั้นทันที วิธีนี้เรียกว่า Webhook ซึ่งมันทำให้ผู้ใช้งานรู้สึกเหมือนกับว่าได้โต้ตอบกับคนจริงๆ

การรับข้อมูลจาก LINE Platform

ข้อมูลจะถูกส่งมาที่ URL ของ server เรา เมื่อไรก็ตามที่มี user ทำการติดต่อกับ account ของเรา ซึ่งมีด้วยกัน 2 แบบ คือ

User ส่งข้อความ (message)

User มี action เช่น add LINE ID ของเราเป็นเพื่อน (operation)

รูปแบบข้อมูลที่ส่งมาจะผ่านทาง HTTP ที่เราตั้ง URL ไว้กับ LINE  โดยข้อมูลจะอยู่ในรูป JSON format ซึ่งมีเนื้อข้อมูลตาม operation ที่ user ติดต่อไป และทุกๆ request จะมี signature ใส่ไปในส่วน header ด้วย ซึ่ง server เราจะต้องทำการตรวจสอบ signature นี้ว่าถูกส่งมาจาก LINE Platform จริงๆ ไม่ใช่มีผู้ปลอมแปลงส่งมา

การส่งข้อมูลไปหา LINE Platform

เราสามารถใช้ APIs ที่ทาง LINE Platform ให้ไว้ใช้สำหรับการส่งข้อมูลจาก server เราไปหา user ซึ่งความสามารถที่ทำได้คือ

  • ส่งข้อความ ไปยัง user หรือ ใครก็ตามที่เพิ่มเราเป็นเพื่อนไว้
  • ดึงข้อมูลชื่อ display ของ user

ซึ่ง server เราสามารถเรียก APIs เพื่อส่งข้อ message ไปหา user ได้ตลอดเวลา โดยเราจะต้องทำการตั้งค่า Channel access token (Channel ID), Channel secret และ Channel MID ซึ่ง APIs ทั้งหมดนี้ต้องใช้ผ่าน HTTPS

วิธีใช้ LINE API

ต่อเนื่องจาก 2 บทที่ผ่านคือ การทำ LINE Bot ด้วย Python และ  LINE Messaging API ทำให้เราสามารถติดตั้ง Chatbot ได้ รวมถึงเข้าใจ flow การทำงานของ Messging API ต่อไปนี้เพื่อต่อยอดในการ ทำ LINE Bot ให้สมบูรณ์มากขึ้น เราจำเป็นต้องรู้ spec ของ LINE Messaging API ว่าใช้ protocol รวมถึง schema ของข้อมูลเป็นแบบใด เพื่อนำไปสู่การ ทำ LINE Bot ด้วยตัวเองและไม่เหมือนใคร

Messaging API Specifications

วิธีใช้ LINE API ทั้งหมด จะใช้ผ่าน HTTP/HTTPS Protocol โดยใช้ POST method และ ใช้ข้อมูล body message เป็น JSON format  เป็นตัวส่ง request ไปหา LINE Server ซึ่งอาจจะทำเป็น RESTful webservice

1. Rate limits

ในการใช้งาน LINE APIs ทุกชนิดจะมีข้อจำกัด หรือ limit ที่ทาง LINE set ไว้ตามระดับของ Id ที่เราสมัครไว้ ซึ่งโดยปกติแล้วของเราจะเป็น Developer Trial โดยจะสามารถส่ง APIs ไปยัง LINE Server ได้สูงสุดไม่เกิน 1000 request/min

PlanLimit
Developer Trial1,000/min
Other plans10,000/min

2. Status codes

คือ response จากฝั่ง LINE ที่ตอบกลับมาหา เพื่อแจ้งผลลัพธ์ของ request ที่เรา POST ไป

Error codeDescription
 200 OK ถูกต้องตามกฎ
 400 Bad Request ข้อมูลที่ส่งไปผิด format schema
 401 Unauthorized Channel access token ไม่ถูกต้อง
 403 Forbidden ฝั่ง Server ปฎิเสธ request  เนื่องจาก Account Id ไม่ได้รับอนุญาตในการใช้งานคำสั่งนั้น
 429 Too Many Requests Request มากเกิน limit ของ Account Plan
 500 Internal Server Error Server LINE มีปัญหา

3. Response headers

กรณีที่ได้รับ response Status code 200 OK ทาง LINE Server แปะ request-id กลับมาให้ ซึ่งจะไม่ซ้ำกันเลย

Response headerDescription
X-Line-Request-IdGenerate จากฝั่ง LINE Server 

4. Error response

กรณีที่ได้รับ response Status code 200 OK แต่ทาง LINE Server ไม่สามารถ process คำสั่งนั้นได้ อาจจะเพราะข้อมูลไม่ครบถ้วน หรือ คำสั่งติดเงือนไขบางอย่าง ทาง LINE Server จะตอบ  error กลับมาพร้อมรายละเอียด

FieldTypeDescription
messageStringบอกจำนวนที่ error
details[].messageStringรายละเอียดของ error

หรือ

FieldTypeDescription
messageStringรายละเอียดของ error

สำหรับรายระเอียดจะอยู่ในหัวข้อ ต่อไป

 5. Error messages

MessageDescription
 The request body has X error(s) An error was found in the JSON data of the request body. The number of errors is displayed for “X”. Further details are shown in the details[].message and details[].property fields.
 Invalid reply token An invalid reply token was used in the reply message
 The property, XXX, in the request body is invalid (line: XXX, column: XXX) An invalid property was specified in the request body. The specific property is displayed for “XXX”.
 The request body could not be parsed as JSON (line: XXX, column: XXX) The JSON in the request body could not be parsed. The specific line and column are displayed.
 The content type, XXX, is not supported A content type not supported by the API is requested.
 Authentication failed due to the following reason: XXX Authentication failed when the API was called. The reason is displayed for “XXX”.
 Access to this API is not available for your account Appears when calling an API that you do not have permission to use.
 Failed to send messages Appears when the message fails to be sent. One reason this may appear is if the user ID specified does not exist.

Messaging API

สำหรับ command ที่ทาง LINE ออกแบบมาให้ใช้งาน มีส่วนประกอบดังนี้

  • Webhooks – ใช้รับ Notification ที่เกิดขึ้นกับ LINE account แบบ realtime สามารถเอามา ทำ LINE Bot รับ message ได้
  • Reply message – ตอบ message กลับไปหา user ที่ส่ง message มา
  • Push message  – ส่ง message หา user ได้ตลอดเวลา
  • Multicast – ส่ง message หาหลายๆ user พร้อมกัน (broadcast)
  • Content – download รูป, video และ ข้อความเสียงที่ user ส่งมา
  • Profile – ดึงข้อมูล user profile
  • Leave – ออกจาก group/room

บทความที่เกี่ยวข้อง