# Line - Message Api - Message types
###### tags: `python` `linebot` `message api`
[toc]
Line的 Message api中message的傳送類型有下列這幾種
### 1. Text message (文字訊息)
### 2. Sticker message (貼圖訊息)
### 3. Image message (圖片訊息)
### 4. Video message (影片訊息)
### 5. Audio message (聲音訊息)
### 6. Location message (地圖訊息)
前6種訊息在前一個課程中已經完整示範。請參考 https://hackmd.io/@CSL/r1pLWiC_i
### 7. Imagemap message (圖片地圖訊息)
Imagemap的使用方法
![image alt](https://developers.line.biz/assets/img/image-overlapping-en.0e89fa18.png =400x200)
```jsonld=
JSON格式
{
"type": "imagemap",
"baseUrl": "https://example.com/bot/images/rm001",
"altText": "This is an imagemap",
"baseSize": {
"width": 1000,
"height": 500
},
"actions": [
{
"type": "uri",
"linkUri": "https://example.com/",
"area": {
"x": 0,
"y": 0,
"width": 500,
"height": 500
}
},
{
"type": "message",
"text": "Hello",
"area": {
"x": 500,
"y": 0,
"width": 500,
"height": 500
}
}
]
}
```
```python
Python程式碼
message = ImagemapSendMessage(
base_url='底圖URL',
alt_text='組圖訊息',
base_size=BaseSize(height=500, width=1000),
actions=[
URIImagemapAction(
link_uri='第一個按鈕URI',
area=ImagemapArea(
x=0, y=0, width=500, height=500
)
),
MessageImagemapAction(
text='hello',
area=ImagemapArea(
x=500, y=0, width=500, height=500
)
)
]
)
```
### 8. Template message (範本訊息)
Template分為四種 Buttons,Confirm,Carouse,Image carousel,
Template訊息與QuickReply一樣,在PC中的Line是顯示不出來的,用alt_text替代,要不要使用,自己決定。
```pthon!
格式如下
message=TemplateSendMessage(
thumbnail_image_url=<image uil>,
alt_text=<template title>,
template=<template type>()
)
line_bot_api.reply_message(event.reply_token, message)
```
#### Buttons template
```python=
使用範例
message = TemplateSendMessage(
alt_text='Buttons Template',
template=ButtonsTemplate(
title='This is ButtonsTemplate',
text='Tiele content',
thumbnail_image_url='$URI',
actions=[
MessageTemplateAction(
label='Text',
text='SendTXT'
),
URITemplateAction(
label='VIDEO',
uri='$URI'
),
PostbackTemplateAction(
label='postback',
text='text',
data='name=John'
)
]
)
)
line_bot_api.reply_message(event.reply_token, message)
```
#### Confirm template
```python=
message = TemplateSendMessage(
alt_text='Confirm template',
template=ConfirmTemplate(
text='Are you okay?',
actions=[
PostbackAction(
label='I\'m good, you?”',
display_text='I\'m good, you?',
data='I=am&good=1'
),
MessageAction(
label='Fine',
text='I\'m ok!
)
]
)
)
line_bot_api.reply_message(event.reply_token, message)
```
#### Carousel template (轉盤)
```python=
message = TemplateSendMessage(
alt_text='CarouselTemplate',
template=CarouselTemplate(
columns=[
CarouselColumn(
thumbnail_image_url='https://xxx/demo1.png',
title='選單1',
text='說明文字1',
actions=[
PostbackAction(
label='postback',
data='data=1'
),
MessageAction(
label='hello1',
text='hello1'
)
]
),
CarouselColumn(
thumbnail_image_url='https://xxx/demo2.png',
title='選單2',
text='說明文字2',
actions=[
PostbackAction(
label='postback',
data='data=2'
),
MessageAction(
label='hello2',
text='hello2'
)
]
)
]
)
)
line_bot_api.reply_message(event.reply_token, message)
```
#### Image carousel
```python=
message=TemplateSendMessage(
alt_text='ImageCarousel template',
template=ImageCarouselTemplate(
columns=[
ImageCarouselColumn(
image_url='https://xxx/demo1.png',
URITemplateAction(
label='VIDEO1',
uri='$URI'
),
),
ImageCarouselColumn(
image_url='https://xxx/demo2.png',
action=MessageAction(
label='Hello',
text='Hello'
)
)
]
)
)
line_bot_api.reply_message(event.reply_token, message)
```
### 9. Flex Message (flexible訊息)
Flex Message是LINE訊息格式中自由度最高的訊息格式,不同的文字格式、
圖文、排列與模板,透過LINE官方所見即所得的[模擬器](https://developers.line.biz/flex-simulator/)來設計訊息的格式。
Flex Message 與 Template Message 最大的不同是,無論是在手機、平板或是PC都可以查看,
我們只要在模擬器中設計好flex message,另存json檔,可將他寫入程式中或是執行時再讓程式讀入即可。
# Action objects:
這裡要介紹的是動作類型,這裡的動作是指點擊Buttons或Image時觸發的動作,總共有 7 種,上面的文章使用過 Postback、Message、URI 三種,現在帶大家來看還有哪些動作類型可以使用。
```尚未完成,待續...```
#### Message action (訊息動作) MessageTemplateAction
#### Postback action (回呼動作) PostbackTemplateAction
#### URI action (網址動作) URITemplateAction
#### Camera action (相機動作)
#### Camera roll action (相片片卷動作)
#### Location action (定位動作)
#### Datetime picker action (日期時間選擇器動作)
引用:官方文件(https://developers.line.biz/en/reference/messaging-api/#text-message)