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