iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 21
1

在我們完成功能列表的總畫面之後,
我們將要在這幾天把所有的功能盡可能地完善,
首先要做的就是電流查詢、與溫濕度查詢,
一般的狀況下其實是要使用溫濕度感測器或其他sensor來取得相關數據的數值,
但由於這是簡單的介紹linebot與資料庫的相關應用,
就不打算再額外介紹MQTT相關的了,
好話不多說那馬上來完成功能吧,
這邊設想linebot回傳溫濕度等功能,只需要簡單的數值回應即可,
所以我們這邊就不用相關的json畫面了,

def callback(request):

    if request.method == 'POST':
        signature = request.META['HTTP_X_LINE_SIGNATURE']
        body = request.body.decode('utf-8')

        try:
            events = parser.parse(body, signature)  # 傳入的事件
        except InvalidSignatureError:
            return HttpResponseForbidden()
        except LineBotApiError:
            return HttpResponseBadRequest()

        for event in events:
            if isinstance(event, MessageEvent):  # 如果有normal訊息事件

                if event.message.text == "功能列表":

                    line_bot_api.reply_message(  # 回復「功能列表」按鈕樣板訊息
                        event.reply_token,
                        Featuresmodel().content()
                    )

            elif isinstance(event, PostbackEvent):  # 如果有postback訊息回傳
                # 電流
                # 如果回傳值為「電流」
                if event.postback.data[0] == "電" and event.postback.data[1] == '流':

                    line_bot_api.reply_message(  # 回復訊息文字
                        event.reply_token,
                        TextSendMessage(text=returnvalue().conditioning())
                    )

                # 濕度
                elif event.postback.data[0] == "濕" and event.postback.data[1] == '度':

                    line_bot_api.reply_message(
                        event.reply_token,
                        TextSendMessage(text=returnvalue().humi())
                    )

                # 溫度
                elif event.postback.data[0] == "溫" and event.postback.data[1] == '度':

                    line_bot_api.reply_message(
                        event.reply_token,
                        TextSendMessage(text=returnvalue().temp())
                    )

        return HttpResponse()
    else:
        return HttpResponseBadRequest()

只需要在這邊加入

elif isinstance(event, PostbackEvent):

即可,由於前面有介紹到我們設計溫濕度及電流按鈕使用後是回傳postback方式,
所以這邊無需在上方一般messageback的地方進行新增修改,
然後下一篇我們在message.py的地方增加資料庫,即可完成這幾個功能,
下一篇GOGO!


今天是 曾一鳴 的 如果你還在就好了 網址如下~~~

https://www.youtube.com/watch?v=Si5ORjWwDEc&list=PLZ_d6NX2sE80xcb4RjHSCBt3E1nTclmC4&index=1&ab_channel=LazyCatPleiades



上一篇
Day20 你有更多選擇之好狗好狗篇(4)
下一篇
Day22 機房好狗走起(2)
系列文
狗狗 Line Bot 以python及Django建構30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言