03從零開始建置line bot聊天機器人使用Python-Line Bot

簡單介紹一下會使用到的插件

  1. LINE Messaging API SDK for Python
  2. Python Flask
  3. Python requests
  4. ngrok

需要安裝的插件:

$ 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

安裝好跟設定好後就可以跑起來看看了

如果按照程式碼出來的會是http://0.0.0.0:5000/

可是Line bot要求的是有Https協議的這時候就要靠ngork了

首先先到ngork官網申請帳號:https://ngrok.com/

Ngork 官網先註冊登入

登入後下載ngork的壓縮檔解壓到跟PyCharm同一個專案資料夾內

下載ngork
把解壓後的exe檔放置到跟line.py同一資料夾內

接著回到編譯器內新增一個資料夾依照網站上的提示啟動

例如我的是:

$ ngrok authtoken 1Te5LDfDesdHQy6pBb4b9SUnTon_7Y4TTxW48iWvn5zdvanVY
$ ngrok http 80

到編譯器底下選Terminal輸入指令

可以看到已經正常運行了

我們要使用的就是這行把它填入Line的Webhook網址中網址尾對要加入/callback

這時候在使用自己的LINE對LINE BOT對話看看

已經有正常的回訊息了!

下一次將會教更多

如何將自己的專案上傳到Herok

如何使用line控制LinkIt 7697等

Comments

No comments yet. Why don’t you start the discussion?

    發佈留言

    發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *