Message types下集來介紹:
接續著上集的程式繼續寫...
6.Location 位置訊息
位置訊息目前是寫死的方式,直接指定經緯度
經緯度可以在 http://card.url.com.tw/realads/map_latlng.php 查詢
title 跟 address 指的地方 (如下圖)
elif event.message.text == "位置":
line_bot_api.reply_message(event.reply_token,LocationSendMessage(title='my location', address='Tainan', latitude=22.994821, longitude=120.196452))
當收到的訊息內容為"位置",就會回覆位置訊息 (如下圖)
點位置訊息
如果是電腦版的Line會直接連結到瀏覽器的googlemap
如果是手機板會在Line應用程式直接開啟map (如下圖)
7.Imagemap
目前遇到的問題是不知道為什麼會出現以下畫面
有確定網路連線
elif event.message.text == "位置2":
imagemap_message = ImagemapSendMessage(
base_url=''
alt_text='this is an imagemap',
base_size=BaseSize(height=520, width=520),
actions=[
URIImagemapAction(
link_uri='',
area=ImagemapArea(
x=174, y=65, width=707, height=416
)
),
MessageImagemapAction(
text='hello',
area=ImagemapArea(
x=520, y=0, width=520, height=520
)
)
]
)
line_bot_api.reply_message(event.reply_token,imagemap_message)
官方Demo https://developers.line.me/media/messaging-api/messages/imagemap-dd854fa7.png
之後如果有找出問題再來更新!!
8.Template 樣板訊息
Template分為四種:
Template訊息跟其他的Messaging types不一樣的地方在於
在電腦版的Line是顯示不出來的,會用alt_text替代 (如下圖)
需要用手機板的Line查看才可以出現預期的效果喔!
** Buttons Template**
按鈕樣板分為三種可以使用的型態:
MessageTemplateAction是純粹的訊息
URITemplateAction是網址的使用
PostbackTemplateAction是含有值的訊息回覆
elif event.message.text == "Buttons Template":
buttons_template = TemplateSendMessage(
alt_text='Buttons Template',
template=ButtonsTemplate(
title='這是ButtonsTemplate',
text='ButtonsTemplate可以傳送text,uri',
thumbnail_image_url='顯示在開頭的大圖片網址',
actions=[
MessageTemplateAction(
label='ButtonsTemplate',
text='ButtonsTemplate'
),
URITemplateAction(
label='VIDEO1',
uri='影片網址'
),
PostbackTemplateAction(
label='postback',
text='postback text',
data='postback1'
)
]
)
)
line_bot_api.reply_message(event.reply_token, buttons_template)
當收到的訊息內容為"Buttons Template",就會回覆Buttons Template訊息 (如下圖)
Confirm Template
Confirm Template可用的型態只有兩種:MessageTemplateAction和PostbackTemplateAction
elif event.message.text == "Confirm template":
print("Confirm template")
Confirm_template = TemplateSendMessage(
alt_text='目錄 template',
template=ConfirmTemplate(
title='這是ConfirmTemplate',
text='這就是ConfirmTemplate,用於兩種按鈕選擇',
actions=[
PostbackTemplateAction(
label='Y',
text='Y',
data='action=buy&itemid=1'
),
MessageTemplateAction(
label='N',
text='N'
)
]
)
)
line_bot_api.reply_message(event.reply_token,Confirm_template)
當收到的訊息內容為"Confirm template",就會回覆Confirm template訊息 (如下圖)
Carousel template
Carousel template可用的型態和Buttons Template一樣
Carousel template就像很多個Buttons Template,一次最多可以有10則
elif event.message.text == "Carousel template":
Carousel_template = TemplateSendMessage(
alt_text='Carousel template',
template=CarouselTemplate(
columns=[
CarouselColumn(
thumbnail_image_url='顯示在開頭的大圖片網址',
title='this is menu1',
text='description1',
actions=[
PostbackTemplateAction(
label='postback1',
text='postback text1',
data='action=buy&itemid=1'
),
MessageTemplateAction(
label='message1',
text='message text1'
),
URITemplateAction(
label='uri1',
uri='http://example.com/1'
)
]
),
CarouselColumn(
thumbnail_image_url='顯示在開頭的大圖片網址',
title='this is menu2',
text='description2',
actions=[
PostbackTemplateAction(
label='postback2',
text='postback text2',
data='action=buy&itemid=2'
),
MessageTemplateAction(
label='message2',
text='message text2'
),
URITemplateAction(
label='連結2',
uri='http://example.com/2'
)
]
)
]
)
)
line_bot_api.reply_message(event.reply_token,Carousel_template)
當收到的訊息內容為"Carousel template",就會回覆Carousel template訊息 (如下圖)
Image Carousel template
Image Carousel template跟Carousel template很像,最多也是一次10則
Image Carousel template是大圖顯示,一則只會執行一個action
elif event.message.text == "Image Carousel":
print("Image Carousel")
Image_Carousel = TemplateSendMessage(
alt_text='目錄 template',
template=ImageCarouselTemplate(
columns=[
ImageCarouselColumn(
image_url='圖片網址',
action=PostbackTemplateAction(
label='postback1',
text='postback text1',
data='action=buy&itemid=1'
)
),
ImageCarouselColumn(
image_url='圖片網址',
action=PostbackTemplateAction(
label='postback2',
text='postback text2',
data='action=buy&itemid=2'
)
)
]
)
)
line_bot_api.reply_message(event.reply_token,Image_Carousel)
當收到的訊息內容為"Image Carousel template",就會回覆Image Carousel template訊息 (如下圖)
參考資料
SDK of the LINE Messaging API for Python
https://pypi.python.org/pypi/line-bot-sdk
完整程式碼: https://github.com/Tzuhui/LineBot2