Line Bot 教學


Line Bot 是什麼?

LINE Bot Designer是什麼?
LINE Bot Designer使您無需任何程式基礎,更輕鬆地製作LINE機器人原型。您可以在所需的場景中自由設計聊天機器人。

簡單來說就是可以在Line聊天視窗自動回覆客人
或是設計一些實用功能讓使用者透過Line就可以使用

建立Line Bot

Line Developers 點我

1. 創建一個聊天頻道

Line Bot設定

2. 輸入發行者名稱

Line Bot怎麼

3. 點擊 Create a Messaging API channel

什麼事Line Bot

4. 把剩下的頻道基本資料填一填

Line Bot架設

5. 填寫完成點擊創建

Line Bot自動回覆

Line Bot是什麼

6. 點擊 Messaging API

Line Bot免費

7. 點擊 Auto-reply messages

Line Bot應用

8. 把 “加入好友歡迎訊息” 與 “自動回應訊息” 停用

Line Bot教學

Line Bot Python 程式範例

1. 創建一個 config.ini

[line-bot]
channel_access_token = 你的token
channel_secret =  你的金鑰

2. 取得Channel access token

Channel access token 在哪?
點擊 Messaging API
下面有Channel access token
點選issue後 會顯示你的token
line自動回覆
Line機器人

3. 取得Channel secret

Channel secret 在哪?
點擊 Basic settings
下面有 Channel secret
Line機器人教學
什麼事Line機器人

4. 建立app.py

建立一個python檔案
這邊以app.py為例

from __future__ import unicode_literals
import os
from flask import Flask, request, abort
from linebot import LineBotApi, WebhookHandler
from linebot.exceptions import InvalidSignatureError
from linebot.models import MessageEvent, TextMessage, TextSendMessage
import configparser
import random

app = Flask(__name__)

# LINE 聊天機器人的基本資料
config = configparser.ConfigParser()
config.read('config.ini')

line_bot_api = LineBotApi(config.get('line-bot', 'channel_access_token'))
handler = WebhookHandler(config.get('line-bot', 'channel_secret'))


# 接收 LINE 的資訊
@app.route("/callback", methods=['POST'])
def callback():
    signature = request.headers['X-Line-Signature']

    body = request.get_data(as_text=True)
    app.logger.info("Request body: " + body)

    try:
        print(body, signature)
        handler.handle(body, signature)

    except InvalidSignatureError:
        abort(400)

    return 'OK'

@handler.add(MessageEvent, message=TextMessage)
def prettyEcho(event):

    sendString = ""
    if "擲筊" in event.message.text:
        sendString = divinationBlocks()
    elif "抽簽" in event.message.text or "抽" in event.message.text:
        sendString = drawStraws()
    else:
        sendString = event.message.text 

    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text=sendString)
    )

def divinationBlocks():
    divinationBlocksList = ["笑杯", "正杯", "正杯", "笑杯"] 
    return divinationBlocksList[random.randint(0, len(divinationBlocksList) - 1)]

def drawStraws():
    drawStrawsList = ["大吉", "中吉", "小吉", "吉", "凶", "小凶", "中凶", "大凶"]
    return drawStrawsList[random.randint(0, len(drawStrawsList) - 1)]

if __name__ == "__main__":
    app.run()

如果有缺少一些SDK可以參考這裡

$ pip3 install django
$ pip3 install line-bot-sdk
$ pip3 install beautifulsoup4
$ pip3 install requests

開啟終端機/CMD
輸入 python3 app.py

Line Bot Python

出現 port 5000 代表成功

Ngrok怎麼設置

Ngrok 就像是 No-IP 與其他轉址軟體一樣
可以本地端地址轉至他生成的一個網址裡
這樣你在本地端也可以建立伺服器
不用固定ip 不用自己網域
懶人架設網域

點這裡官網下載

1. Ngrok安裝步驟

Line Bot Python

2. 解壓縮Ngrok.zip

unzip ngrok.zip

解壓縮後會生成ngrok檔案
Line Bot Python

3. 設置Ngrok token

上面再下載時官網已經有跟你說token

ngrok authtoken 你的token

4. 設置Ngrok port

5000是port
自己可以更換
但前面app.py架設伺服器是使用 5000 port
故設置 5000

ngrok http 5000

Line Bot Python

Forwarding 有給一組網域名稱
https://bd318e3935d9.ngrok.io
這就是ngrok生成的

5. 更換Webhook URL

點擊 Edit

Line Bot PHP

更換URL

記得後面要換我的 /callback 才呼叫得到func
好的以後點擊 update

Line Bot PHP

點擊 Verify

測試伺服器是否開啟
失敗請回前幾個步驟重新建置
出現 error 200 也是
需要多建置幾次方可成功

Line Bot PHP

Line Bot

Line 測試

6. 開啟加入群組權限

Messaging API -> Allow bot to join group chats
Line Bot PHP

開啟加入群組或多人聊天室
Line Bot PHP

要玩的可以自行加機器人好友

Line Bot PHP


參考
[Python+LINE Bot教學]6步驟快速上手LINE Bot機器人
[Python Linebot]教你如何使用Python成功串接Linebot(2020版)
line-bot-sdk SDK範例

建立聊天機器人

LINE Bot Designer

Python更多文章


Python 檢查dict是否有這個key



[教學] Line Bot 機器人不求人 – 範例 (Python)



Python – Selenium 繞過”這個瀏覽器或應用程式可能有安全疑慮”



python 各種均線 10MA/20MA均線 | pandas安裝



python sleep 暫停幾秒執行 – 2021年



PyAutoGUI Python控制電腦 | 按鍵精靈 | 鍵盤控制



python binance币安利用ccxt完成虛擬貨幣自動化交易



python write dictionary to text file | dict 寫入讀取


Categorized in: