簡單介紹一下會使用到的插件
需要安裝的插件:
$ pip install line-bot-sdk
$ pip install flask
$ pip install requests
$ pip install flask_cors
程式碼:
from flask import Flask, request, abort
from linebot import (
LineBotApi, WebhookHandler
)
from linebot.exceptions import (
InvalidSignatureError
)
from linebot.models import *
app = Flask(__name__)
# Channel Access Token
line_bot_api = LineBotApi('YOUR_CHANNEL_ACCESS_TOKEN')
# Channel Secret
handler = WebhookHandler('YOUR_CHANNEL_SECRET')
# 監聽所有來自 /callback 的 Post Request
@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:
abort(400)
return 'OK'
# 處理訊息
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
message = TextSendMessage(text=event.message.text)
line_bot_api.reply_message(event.reply_token, message)
@app.route('/')
def index():
return 'Hello World'
import os
if __name__ == "__main__":
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)
首先先打開編譯器我是使用PyCharm環境使用在第一次教學使用的虛擬環境
新建一個.py檔:我的是叫line.py並貼上程式碼
YOUR_CHANNEL_ACCESS_TOKEN跟 YOUR_CHANNEL_SECRET 修改成第二篇中的提到的
在編譯器底下選Terminal 安裝以下個庫
$ pip install line-bot-sdk
$ pip install flask
$ pip install requests
$ pip install flask_cors
安裝好跟設定好後就可以跑起來看看了
可是Line bot要求的是有Https協議的這時候就要靠ngork了
首先先到ngork官網申請帳號:https://ngrok.com/
登入後下載ngork的壓縮檔解壓到跟PyCharm同一個專案資料夾內
接著回到編譯器內新增一個資料夾依照網站上的提示啟動
例如我的是:
$ ngrok authtoken 1Te5LDfDesdHQy6pBb4b9SUnTon_7Y4TTxW48iWvn5zdvanVY
$ ngrok http 80
到編譯器底下選Terminal輸入指令
我們要使用的就是這行把它填入Line的Webhook網址中網址尾對要加入/callback
這時候在使用自己的LINE對LINE BOT對話看看
已經有正常的回訊息了!
下一次將會教更多
如何將自己的專案上傳到Herok
如何使用line控制LinkIt 7697等