发送样板消息
LINE BOT 除了单纯的发送消息,也可传送“样板消息 template message”给用户,让用户可以直接在上面选择或进行确认,这篇教学会介绍样板消息有哪些种类,以及如何发送样板消息。
建议先阅读:建立 LINE Channel
快速导览:
ButtonsTemplate 按钮样板
ButtonsTemplate 按钮样板会提供最多四个按钮供用户点选,相关属性如下:
| 属性 | 说明 |
|---|---|
| thumbnailImageUrl | 缩图链接,支援 jpg 和 png,最大宽度 1024px。 |
| imageAspectRatio | 图片比例,默认 rectangle ( 1.51:1 ),可设定 square (1:1)。 |
| imageSize | 图片尺寸,默认 cover ( 绝对撑满,才切超过显示比例的区域 ),可设定 contain。 |
| imageBackgroundColor | 放置图片区域的背景颜色,默认白色 #FFFFFF。 |
| title | 样板标题。 |
| text | 样板说明文字。 |
| actions | 点击按钮触发的行为,一个按钮一种行为,最多支援四个按钮。 |
Colab 安装 line-bot-sdk 后,输入下方的程序码,填入自己的 access token 和 user ID,执行后就会看见 LINE 出现按钮样板消息。
参考:解析 LINE 的消息
from linebot import LineBotApi, WebhookHandler
# 需要額外載入對應的函示庫
from linebot.models import PostbackAction,URIAction, MessageAction, TemplateSendMessage, ButtonsTemplate
line_bot_api = LineBotApi('你的 Channel access token')
line_bot_api.push_message('你的 user ID', TemplateSendMessage(
alt_text='ButtonsTemplate',
template=ButtonsTemplate(
thumbnail_image_url='https://steam.oxxostudio.tw/download/python/line-template-message-demo.jpg',
title='OXXO.STUDIO',
text='這是按鈕樣板',
actions=[
PostbackAction(
label='postback',
data='發送 postback'
),
MessageAction(
label='說 hello',
text='hello'
),
URIAction(
label='前往 STEAM 教育學習網',
uri='https://steam.oxxostudio.tw'
)
]
)
))
ConfirmTemplate 确认样板
ConfirmTemplate 确认样板会提供最多两个按钮供用户点选,相关属性如下:
| 属性 | 说明 |
|---|---|
| text | 样板说明文字。 |
| actions | 点击按钮触发的行为,一个按钮一种行为,最多支援两个按钮。 |
Colab 安装 line-bot-sdk 后,输入下方的程序码,填入自己的 access token 和 user ID,执行后就会看见 LINE 出现确认样板消息。
from linebot import LineBotApi, WebhookHandler
# 需要額外載入對應的函示庫
from linebot.models import MessageAction, TemplateSendMessage, ConfirmTemplate
line_bot_api = LineBotApi('你的 Channel access token')
line_bot_api.push_message('你的 user ID', TemplateSendMessage(
alt_text='ConfirmTemplate',
template=ConfirmTemplate(
text='你好嗎?',
actions=[
MessageAction(
label='好喔',
text='好喔'
),
MessageAction(
label='好喔',
text='不好喔'
)
]
)
))
CarouselTemplate 轮播样板
ConfirmTemplate 确认样板会提供最多十个群组 ( 按钮样板 ) 供用户左右滑动点选,相关属性如下:
| 属性 | 说明 |
|---|---|
| columns | 要出现的按钮样板,使用串列格式。 |
| thumbnailImageUrl | 缩图链接,支援 jpg 和 png,最大宽度 1024px。 |
| imageAspectRatio | 图片比例,默认 rectangle ( 1.51:1 ),可设定 square (1:1)。 |
| imageSize | 图片尺寸,默认 cover ( 绝对撑满,才切超过显示比例的区域 ),可设定 contain。 |
| imageBackgroundColor | 放置图片区域的背景颜色,默认白色 #FFFFFF。 |
| title | 样板标题。 |
| text | 样板说明文字。 |
| actions | 点击按钮触发的行为,一个按钮一种行为,最多支援四个按钮。 |
Colab 安装 line-bot-sdk 后,输入下方的程序码,填入自己的 access token 和 user ID,执行后就会看见 LINE 出现确认样板消息。
from linebot import LineBotApi, WebhookHandler
# 需要額外載入對應的函示庫
from linebot.models import MessageAction, TemplateSendMessage, CarouselTemplate, CarouselColumn
line_bot_api = LineBotApi('你的 Channel access token')
line_bot_api.push_message('你的 user ID', TemplateSendMessage(
alt_text='CarouselTemplate',
template=CarouselTemplate(
columns=[
CarouselColumn(
thumbnail_image_url='https://steam.oxxostudio.tw/download/python/line-template-message-demo.jpg',
title='選單 1',
text='說明文字 1',
actions=[
PostbackAction(
label='postback',
data='data1'
),
MessageAction(
label='hello',
text='hello'
),
URIAction(
label='oxxo.studio',
uri='http://oxxo.studio'
)
]
),
CarouselColumn(
thumbnail_image_url='https://steam.oxxostudio.tw/download/python/line-template-message-demo2.jpg',
title='選單 2',
text='說明文字 2',
actions=[
PostbackAction(
label='postback',
data='data1'
),
MessageAction(
label='hi',
text='hi'
),
URIAction(
label='STEAM 教育學習網',
uri='https://steam.oxxostudio.tw'
)
]
)
]
)
))
ImageCarouselTemplate 图片轮播样板
ImageCarouselTemplate 图片轮播样板会提供最多十张可以滑动选择的图片,作为按钮供用户点选,相关属性如下:
| 属性 | 说明 |
|---|---|
| text | 样板说明文字。 |
| columns | 要出现的图片样板,使用串列格式。 |
| imageUrl | 图片网址,支援 jpg 和 png,最大宽度 1024px。 |
| actions | 点击图片所触发的行为,一张图片一种行为,最多支援十张图片。 |
Colab 安装 line-bot-sdk 后,输入下方的程序码,填入自己的 access token 和 user ID,执行后就会看见 LINE 出现确认样板消息。
from linebot import LineBotApi, WebhookHandler
# 需要額外載入對應的函示庫
from linebot.models import MessageAction, TemplateSendMessage, ImageCarouselTemplate, ImageCarouselColumn
line_bot_api = LineBotApi('你的 Channel access token')
line_bot_api.push_message('你的 user ID', TemplateSendMessage(
alt_text='ImageCarousel template',
template=ImageCarouselTemplate(
columns=[
ImageCarouselColumn(
image_url='https://upload.wikimedia.org/wikipedia/en/a/a6/Pok%C3%A9mon_Pikachu_art.png',
action=MessageAction(
label='皮卡丘',
text='皮卡丘'
)
),
ImageCarouselColumn(
image_url='https://upload.wikimedia.org/wikipedia/en/5/59/Pok%C3%A9mon_Squirtle_art.png',
action=MessageAction(
label='傑尼龜',
text='傑尼龜'
)
)
]
)
))
小结
熟悉样板消息后,就能够提供用户可以点选的“选项”,快速让用户选择,避免还要额外撰写程序从对话语句判断关键字,是相当方便好用的功能。
微信扫码关注
抖音扫码关注