這次要分享的是LINE官方自動回復教學,完成的話會像這樣已讀亂回
做Line官方自動回覆大約需要這幾個步驟: 準備帳號、程式準備、程式上傳、部屬
(因為沒額外帳號可以示範,所以這裡大略說明)
辦好帳號先創建一個Providers
創建好後在左方欄位可以看到你剛創建的Provider,接著點他新增一個channel,創建一個Message API
接著需要填入的資訊可以參考其他教學
這次要用Python寫Line機器人隨機回覆系統。
需要三個檔案Procfile、app.py、requirements.txt,程式可以用visual studio code來寫
Procfile
web:gunicorn
app:app
app.py
import random
import os
from flask import Flask, request
from linebot import LineBotApi, WebhookHandler
from linebot.models import MessageEvent, TextMessage, TextSendMessage
from linebot.exceptions import InvalidSignatureError
# 設定 LINE API 金鑰,變數要和render填的一樣
LINE_ACCESS_TOKEN = os.getenv('LINE_ACCESS_TOKEN')
LINE_SECRET = os.getenv('LINE_SECRET')
# 建立 Flask 伺服器
app = Flask(__name__)
# 初始化 LINE API
line_bot_api = LineBotApi(LINE_ACCESS_TOKEN)
handler = WebhookHandler(LINE_SECRET)
# 在[]內新增想回覆的話
random_replies = [
"今天天氣真好",
"你好"
]
# Webhook 路由
@app.route("/callback", methods=["POST"])
def callback():
# 取得 LINE 傳送的 Header
signature = request.headers["X-Line-Signature"]
body = request.get_data(as_text=True)
try:
handler.handle(body, signature)
except InvalidSignatureError:
return "Signature error", 400
return "OK"
# 處理收到的訊息
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
# 隨機選取一句話回覆
reply_text = random.choice(random_replies)
line_bot_api.reply_message(event.reply_token, TextSendMessage(text=reply_text))
# 啟動 Flask 伺服器
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)
需要增加自動回覆的句子就加在random_replies=[ ]的方括號裡
requirement.txt
flask
line-bot-sdk
gunicorn
將Procfile、app.py、requirements.txt上傳到github
在github內點擊頭像(在右上角),選Your repositiories。
接著點擊New,一樣會在右上角
輸入Repository name,依照自己的需求選Publicc或是Private
接著會看到這個畫面,可以點uploading an existing file上傳檔案
上傳這幾個檔案
先登入render,接著從右上角點擊New然後再點Web Service
連結github並選擇專案
部屬前設定
需要注意的是環境變數,要和app.py檔案內的設定的變數一樣
LINE_SECERT要填入Channel secret,要從line developers登入獲得,點入一開始新增的Messaging API後,在Basic settings往下滑會看到
LINE_ACCESS_TOKEN要填入Channel access token,點選Messaging API後往下滑會看到
Channel secret和Channel access token很重要,不要隨意提供給他人!
都填入好按完成,然後等專案部屬好,會提供一個網址要複製下來
複製好後接著要去Line官方貼上網址,點選LINE Official Account Manager(途中右下角)
點擊設定(在右上角)→Messaging API(在左側) 在Webhook網址的欄位輸入render提供的網址/callback 假設提供網址是https://abc.onrender.com就要在後面加上/callback
例如:https://abc.onrender.com/callback
沒意外的話官方帳號就能說話了
感謝大家支持
第一次寫程式教學,如果看著教學有問題可以在下方留言,我們日後會再補充不清楚的地方