Site Loader
聯絡我們
台灣 新北市

Line Developers建置Bot的教學裡面是使用Heroku平台做為示範,滿簡單可以上手的,不過Heroku的服務sleep後要喚醒較慢,剛好最近將開始使用AWS,查了一下透過AWS Lambda也可以達成,而且響應快速。

我對於Python以及AWS還沒有到很熟悉,很多地方也都還在摸索,如果有錯誤歡迎指正。

本篇使用的是Line Messaging API SDK for Python,需要修改Github上的範本得以在Lambda上執行。

新增資料夾,安裝line-bot-sdk相關套件到該資料夾

pip install line-bot-sdk -t .

新增檔案main.py

from linebot import (
    LineBotApi, WebhookHandler
)
from linebot.exceptions import (
    InvalidSignatureError
)
from linebot.models import (
    MessageEvent, TextMessage, TextSendMessage,
)

line_bot_api = LineBotApi('token')
handler = WebhookHandler('secret')

def main_handler(event, context):
    signature = event['headers']['X-Line-Signature']
    body = event['body']

    @handler.add(MessageEvent, message=TextMessage)
    def handle_message(event):
        line_bot_api.reply_message(
            event.reply_token,
            TextSendMessage(text=event.message.text))

    try:
        handler.handle(body, signature)
    except InvalidSignatureError:
        return {'statusCode': 400, 'body': 'InvalidSignature'}
    return {'statusCode': 200, 'body': 'OK'}

將所有檔案打包為zip壓縮檔後,到Lambda新增函式並將剛剛的壓縮檔上傳為函式程式碼。支後也可以直接透過函式視窗做程式碼的測試跟修改。

新增API Gateway為觸發條件,這時候就可以將生成的API終端節點填入到Line Developers專案內的Webhook URL。

Post Author: BStudio