這次要來建立一個我說甚麼你跟著說的機器人。
你需要從剛剛申請的LINE帳號中拿兩個東西跟你的程式碼做連結,透過這兩個東西LINE才知道要做什麼事情。
1.在Basic settings頁籤中,找到Channel secret(頻道密碼)
2.在Messaging API頁籤中,找到Channel access token(頻道憑證)
其中,要驗證訊息是否符合你要的格式,主要是由Channel secret(頻道密碼),而發送訊息&回覆訊息則是由Channel access token(頻道憑證)來運作,你可以先把他想像成是帳號跟密碼的概念。
在開始製作機器人之前你要先到這個網址(https://github.com/line/line-bot-sdk-python)
下載line bot sdk,然後用pip install line-bot-sdk這個指令安裝,line bot sdk這個是一個模組,是LINE提供給Python 讓我們控制LINE聊天機器的的模組。
程式碼
from flask import Flask, request, abort
from flask.logging import create_logger
from linebot import (
LineBotApi, WebhookHandler
)
from linebot.exceptions import (
InvalidSignatureError
)
from linebot.models import (
MessageEvent, TextMessage, TextSendMessage,
)
app = Flask(name)
LOG = create_logger(app)
line_bot_api = LineBotApi('聊天機器人的 Chennel access token')
handler = WebhookHandler('聊天機器人的 Channel secret')
@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:
handler.handle(body, signature)
except InvalidSignatureError:
abort(400)
return 'OK'
@handler.add(MessageEvent, message=TextMessage)
def echo(event):
if event.source.user_id != "Udeadbeefdeadbeefdeadbeefdeadbeef":
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=event.message.text)
)
if name == "main":
app.run()