今天要介紹的是訊息格式 Message Types,前面已經介紹過 Flex 和 Template,今天就跳過這兩個,來看 Line Bot 還可以傳送哪些訊息內容給使用者。
Message Types:
官方文件: message-types
text
來源官方文件: #text-message
程式碼:
var message = new TextMessage(
$"{Char.ConvertFromUtf32(0x10005C)} Text Message");
await _messagingClient.ReplyMessageAsync(ev.ReplyToken,
new List<ISendMessage> { message });
結果:

官方提供的貼圖才能使用 Line 貼圖清單。
sticker
來源官方文件: #sticker-message
程式碼:
var stickerMessage = new StickerMessage("11538", "51626519");
結果:

image
HTTPS、JPEG、最大解析度 4096 x 4096、大小限制 1MB。HTTPS、JPEG、最大解析度 240 x 240、大小限制 1MB。來源官方文件: #image-message
程式碼:
var imageMessage = new ImageMessage(
"https://xxxxx/image1.jpg",
"https://xxxxx/image2.jpg");
結果:


video
HTTPS、mp4、最長 1 分鐘、大小限制 10MB。HTTPS、JPEG、最大解析度 240 x 240、大小限制 1MB。來源官方文件: #video-message
程式碼:
var videoMessage = new VideoMessage(
"https://xxxxx/video.mp4",
"https://xxxxx/image.jpg");
結果:


audio
HTTPS、m4a、最長 1 分鐘、大小限制 10MB。來源官方文件: #audio-message
程式碼:
var audioMessage = new AudioMessage(
"https://xxxxx/audio.mp3", 45000);
結果:

location
來源官方文件: #location-message
程式碼:
var locationMessage = new LocationMessage(
"我家地址", "台中市潭子區潭子火車站", 24.212890M, 120.705579M);
結果:

最後一個 Imagemap 直接看文件有點難理解它的用途,簡單說就是我們可以在一張圖片上,用座標畫出幾個區塊,當使用者點擊區塊時執行某些動作。
imagemap
# 圖片說明
# 動作說明
baseUrl/{image width} 組成,不能有副擋名。| 圖片寬度 | 網址 |
|---|---|
| 240px | https://xxx/image/240 |
| 300px | https://xxx/image/300 |
| 460px | https://xxx/image/460 |
| 700px | https://xxx/image/700 |
| 1040px | https://xxx/image/1040 |
動作類型有兩個 uri 和 message。
uri
uri。http、https、line、tel。#區域物件。message
message。#區域物件。{
"type": "imagemap",
"baseUrl": "https://xxxxx/image",
"altText": "Imagemap Message",
"baseSize": {
"width": 1040,
"height": 1040
},
"actions": [
{
"type": "message",
"text": "A",
"area": {
"x": 0,
"y": 0,
"width": 520,
"height": 520
}
},
{
"type": "uri",
"linkUri": "https://xxxxx/link",
"area": {
"x": 520,
"y": 0,
"width": 520,
"height": 520
}
}
]
}
來源官方文件: #imagemap-message
程式碼:
var imagemapMessage = new ImagemapMessage(
"https://github.com/fysh711426/ithelp/raw/master/IronMan/Day13/images",
"Imagemap Message",
new ImagemapSize(1040, 1040),
new List<IImagemapAction>
{
new MessageImagemapAction(
new ImagemapArea(0, 0, 520, 520), "A"),
new MessageImagemapAction(
new ImagemapArea(520, 0, 520, 520), "B"),
new MessageImagemapAction(
new ImagemapArea(0, 520, 520, 520), "C"),
new UriImagemapAction (
new ImagemapArea(520, 520, 520, 520),
"https://ithelp.ithome.com.tw/users/20106865/articles")
});
結果:

還有另一個功能,可以在 Imagemap 圖片上方播放影片。
HTTPS、mp4、最長 2 分鐘、大小限制 10MB。HTTPS、JPEG、最大解析度 240 x 240、大小限制 1MB。如果想要在影片播放結束後顯示超連結,可以加上這兩個屬性。
http、https、line、tel。程式碼:
var imagemapMessage = new ImagemapMessage(
"https://github.com/fysh711426/ithelp/raw/master/IronMan/Day13/images",
"Imagemap Message",
new ImagemapSize(1040, 1040),
new List<IImagemapAction>
{
new MessageImagemapAction(
new ImagemapArea(0, 0, 520, 520), "A"),
new MessageImagemapAction(
new ImagemapArea(520, 0, 520, 520), "B"),
new MessageImagemapAction(
new ImagemapArea(0, 520, 520, 520), "C"),
new UriImagemapAction (
new ImagemapArea(520, 520, 520, 520),
"https://ithelp.ithome.com.tw/users/20106865/articles")
},
video: new Video(
"https://xxxxx/video.mp4",
"https://xxxxx/image.jpg",
new ImagemapArea(160, 280, 720, 480),
new ExternalLink(
"https://ithelp.ithome.com.tw/users/20106865/articles", "超連結")
));
結果:


下一篇要介紹「按鈕」或「圖文選單」可以觸發的動作類型 Action Objects。
今天就到這裡,感謝大家觀看。 (´・ω・`)