---
# System prepended metadata

title: Line - Message Api - Message types
tags: [linebot, python, message api]

---

# 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)
