这次要来建立一个我说甚么你跟着说的机器人。
你需要从刚刚申请的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聊天机器的的模组。
程式码
档案名称app.py
from flask import Flask, request, abort
from flask.logging import create_logger
LINE bot 必要套件
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 聊天机器人的基本资料
line_bot_api = LineBotApi('聊天机器人的 Chennel access token')
handler = WebhookHandler('聊天机器人的 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: 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()