前置作業
上面會用到的兩個網址
照這位大大把推廣的帳號和line console後台做綁定
好了之後呢我們來看一下正題
我們先來下載
下載後呢
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ngrok http 5000 |
執行NGORK
LINE Webhook設定
大家比較有問題的是webhooks
記得把上面設成enable url則跟ngork產生的臨時網址+自己的伺服器回應網址做結合
得到
https://05bfab1a.ngrok.io/callback
那接下來執行
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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('token') | |
handler = WebhookHandler('script') | |
@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) | |
print("Request body: " + body, "Signature: " + signature) | |
# handle webhook body | |
try: | |
handler.handle(body, signature) | |
except InvalidSignatureError: | |
abort(400) | |
return 'OK' | |
@handler.add(MessageEvent, message=TextMessage) | |
def handle_message(event): | |
#print("Handle: reply_token: " + event.reply_token + ", message: " + event.message.text) | |
content = "{}: {}".format(event.source.user_id, event.message.text) | |
print (content) | |
print('--------------------------------') | |
line_bot_api.reply_message( | |
event.reply_token, | |
TextSendMessage(text=content)) | |
import os | |
if __name__ == "__main__": | |
app.run(debug=True,port=5000) |
我們掃描我們的linebot帳號並輸入一連串文字
成功的話我們可以看到伺服器會回傳json
嫌這個看不太清楚的話呢輸入這串網址我們可以進到
看比較詳細的Requests詳細資料
以前的話呢是對json做處理現在有api可以call了
關閉自動回復訊息範本
很抱歉,這個帳號沒有辦法對用戶個別回覆。(hm)
敬請期待下次的訊息內容!(shiny)
這個咚咚呢,我們可以把他切掉
這邊可以看到我們的linebot已經完成了!