在專案資料夾內右鍵開啟VS Code
左邊工作區右鍵新增檔案
將檔案命名為app.py
這時會提示要不要安裝Python延伸模組
這邊按安裝
安裝後點擊Select a Python Interpreter Python直譯器選擇前面安裝的Python版本
在line-bot-sdk-python 的Github有範例程式
https://github.com/line/line-bot-sdk-python
後面將用這個程式打造成群組團購機器人
回到app.py檔案,將下方程式碼複製至app.py
from flask import Flask, request, abort
from linebot import (
LineBotApi, WebhookHandler
)
from linebot.exceptions import (
InvalidSignatureError
)
from linebot.models import (
MessageEvent, TextMessage, TextSendMessage,
)
app = Flask(__name__)
line_bot_api = LineBotApi('YOUR_CHANNEL_ACCESS_TOKEN')
handler = WebhookHandler('YOUR_CHANNEL_SECRET')
@app.route("/callback", methods=['POST'])
def callback():
# get X-Line-Signature header value
signature = request.headers['X-Line-Signature']
# get request body as text
body = request.get_data(as_text=True)
app.logger.info("Request body: " + body)
# handle webhook body
try:
handler.handle(body, signature)
except InvalidSignatureError:
print("Invalid signature. Please check your channel access token/channel secret.")
abort(400)
return 'OK'
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=event.message.text))
if __name__ == "__main__":
app.run()
這邊就會用到前面提到的Channel secret、access token
進到LINE頻道網頁,在Basic settings網頁往下滾會看到你的Channel secret!
這邊把你程式內單引號裡YOUR_CHANNEL_SECRET替換成你的Channel secret
handler = WebhookHandler('YOUR_CHANNEL_SECRET')
在Messaging API滾到底會看到你的Channel access token!
同樣把你程式內單引號裡YOUR_CHANNEL_ACCESS_TOKEN替換成你的CHANNEL_ACCESS_TOKEN
line_bot_api = LineBotApi('YOUR_CHANNEL_ACCESS_TOKEN')
接著點右上在終端機中執行Python
正常執行畫面長這樣
右下新增一個命令提示字元視窗
在命令提示字元中輸入
ngrok http 5000
這個指令讓外部網路也能拜訪這個內網位址 http://127.0.0.1:5000
這時他會給你兩個位址,這邊會用到下面那個https的位址
這個位址時效是2小時,2小時後要再打一次指令產生新的位址,時效也是2小時
Ctrl+Shift+C 複製它
接著開啟頻道頁面內的Messaging API,這邊開啟Use webhook
然後點擊Edit並將剛才複製的位址貼上,並在後面加上/callback
按Update更新
你的位址/callback
接著點擊Verify,顯示Success代表連接成功了
程式預設是回復它接收到的訊息
先到python分頁按Ctrl+C中斷Python再點擊右上重新執行一次
然後到你的Line發送訊息,有收到回復訊息代表成功了