iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0
DevOps

30天的社群機器人之旅系列 第 11

Day 11 Quick reply

  • 分享至 

  • xImage
  •  

昨天已經大概介紹完 FlexMessage ,接著今天要來介紹 Quick reply , Quick reply 看起來雖然很簡單,但是功能卻相當強大,某些時刻也相當好用。

就讓我們先用前面 PostbackEvent 會回傳的 TextMessage 來示範一下,如何在 TextSendMessage 加入 Quick reply 的訊息。

我們只要在正常的 TextSendMessage 後面加入 QuickReply ,並用 QuickReplyButton 建立我們要的按鈕,然後設定對應的動作,再將 QuickReplyButton 串成 list 放入 QuickReply 的 item 參數即可。

@handler.add(PostbackEvent)
def handle_postback(event):
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(
            text=event.postback.data,
            quick_reply=QuickReply(
                items=[
                    QuickReplyButton(
                        action=PostbackAction("Hello", data="world", display_text="Hello")
                    ),
                    QuickReplyButton(
                        action=PostbackAction("World", data="hello", display_text="World")
                    )
                ]
            )
        )
    )

這樣就可以將前面做過的 FlexMessage 的按鈕按下去後會觸發的 PostbackEvent 回復的訊息加上一個 QuickReply 了。

但是我們這個設計有點小問題,那就是我們 QuickReply 觸發的動作是設計成 PostbackAction ,因此觸發後又會進入 PostbackEvent 的處裡函式中,然後就會陷入無限 Loop 中。

那麼就先到這邊,明天會介紹一些真正讓 Quick Reply 變強大的秘密。

大家掰~掰~


上一篇
Day 10 PostbackEvent
下一篇
Day 12 URI action & Camera action
系列文
30天的社群機器人之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言