In this blog, I will explain how to receive different types of messages responses from LINE Bot. This includes text, sticker, video, audio, location etc types of responses. Follow this tutorial to make SUSI AI LINE Bot.
How does LINE Messaging API work?
The messaging API of LINE allows data to be passed between the server of SUSI AI and the LINE Platform. When a user sends a message to SUSI bot, a webhook is triggered and the LINE Platform sends a request to our webhook URL. SUSI Server then sends a request to the LINE Platform to respond to the user. Requests are sent over HTTPS in JSON format.
Different Message types
-
Image Messages
To send images, we need two things, the URLs of original image and smaller preview image in the message object. The preview image will be displayed in text and full image is displayed when user clicks on the preview image.
The message object for image message has 3 properties –
Property |
Type |
Description |
type |
String |
image |
originalContentUrl |
String |
Image URL |
previewImageUrl |
String |
Preview image URL |
Sample Message object:
{ "type": "image", "originalContentUrl": "https://susi.ai/original.jpg", "previewImageUrl": "https://susi.ai/preview.jpg" }
-
Video Messages
To send videos, we need two things, the URL of video file and URL of preview image of video in the message object.
The message object for video messages has 3 properties:
Property |
Type |
Description |
type |
String |
image |
originalContentUrl |
String |
Video file URL |
previewImageUrl |
String |
Preview image URL |
Sample Message object for video type responses:
{ "type": "video", "originalContentUrl": "https://susi.ai/original.mp4", "previewImageUrl": "https://susi.ai/preview.jpg" }
-
Audio Messages
To send an audio message, you have to include the URL to audio file and the duration in the message object.
The message object for audio messages has 3 properties:
Property |
Type |
Description |
type |
String |
image |
originalContentUrl |
String |
Audio file URL |
duration |
Number |
Length of the Audio file in milliseconds |
Sample Message object for audio type responses:
{ "type": "audio", "originalContentUrl": "https://susi.ai/original.m4a", "duration": 10000 }
-
Location Messages
To send location information to users, you need to include title, address, latitude and longitude of the location.
The message object needs to include 5 properties:
Property |
Type |
Required |
Description |
type |
String |
Required |
location |
title |
String |
Required |
Title |
address |
String |
Required |
Address |
latitude |
Decimal |
Required |
Latitude |
longitude |
Decimal |
Required |
Longitude |
Sample Message object for location type responses:
{ "type": "location", "title": "singapore", "address": "address", "latitude": 1.2896698812440377, "longitude": 103.85006683126556 }
How to use these Message objects?
You have to send the response that you got from SUSI server to LINE platform. Now this response is sent in the form of an object. This object tells the LINE platform about the type of this message. So simply sending this object to reply API of LINE sends the message to user.
It looks like this:
return client.replyMessage(event.replyToken, answer);
References:
- LINE Messaging API documentation: https://developers.line.me/en/docs/messaging-api/overview/
- LINE Message Types: https://developers.line.me/en/docs/messaging-api/message-types/
- SUSI LINE Bot Repository: https://github.com/fossasia/susi_linebot