日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LINE chatbot机器人开发

發布時間:2023/12/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LINE chatbot机器人开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

LINE 提供服務,先到 LINE Develpers 登入及註冊。

先到 https://developers.line.biz/en/ 登入

登入後,注冊,填寫 Name 、Email,並發送信箱認證信

選擇要使用的服務: Messaging API for python。

Create new channel

完成相關資料輸入 => App icon、App name、Description、Category、 Subcategory、 Email address、 Privacy Policy URL、 Terms Of Use URL

Confirm:確認輸入資料正確性

channel 建立成功

Messaging settings:

Use webhooks 切換成 Enabled
Webhook URL :先留空白,等建立 Webhook URL 後,再回頭設定

這邊不用設定,最下面有 chatbot 的 QR code ,用於加入用戶進行對話。

佈署到 heroku

在專案資料夾新增名稱為 Procfile 的檔案

web: node app.js

如果電腦有安裝 heroku CLI,則可以於專案資料夾路徑執行下面指令:

heroku login
會與連結到 heroku 網站,點選 log in 再回到 CLI,已登入 heroku

建立一個 heroku app

heroku create
成功建立,左邊是 app 網址,右邊是 git push 位址

可用 git remote -v 指令來查詢
將專案 push heroku master

git push heroku master
push 後,會偵測哪一種語言撰寫的 app、建置 runtime environment、Installing binaries、Installing dependencies(相關套件)

from __future__ import unicode_literalsimport os import sys import redisfrom argparse import ArgumentParserfrom flask import Flask, request, abort from linebot import (LineBotApi, WebhookParser ) from linebot.exceptions import (InvalidSignatureError )from linebot.models import (MessageEvent, TextMessage, TextSendMessage, ImageMessage, VideoMessage, FileMessage, StickerMessage, StickerSendMessage, LocationMessage ) from linebot.utils import PY3app = Flask(__name__)# get channel_secret and channel_access_token from your environment variable channel_secret = os.getenv('LINE_CHANNEL_SECRET', None) channel_access_token = os.getenv('LINE_CHANNEL_ACCESS_TOKEN', None)# obtain the port that heroku assigned to this app. heroku_port = os.getenv('PORT', None)if channel_secret is None:print('Specify LINE_CHANNEL_SECRET as environment variable.')sys.exit(1) if channel_access_token is None:print('Specify LINE_CHANNEL_ACCESS_TOKEN as environment variable.')sys.exit(1)line_bot_api = LineBotApi(channel_access_token) parser = WebhookParser(channel_secret)@app.route("/callback", methods=['POST']) def callback():signature = request.headers['X-Line-Signature']# get request body as textbody = request.get_data(as_text=True)app.logger.info("Request body: " + body)# parse webhook bodytry:events = parser.parse(body, signature)except InvalidSignatureError:abort(400)# if event is MessageEvent and message is TextMessage, then echo textfor event in events:if not isinstance(event, MessageEvent):continueif isinstance(event.message, TextMessage):handle_TextMessage(event)if isinstance(event.message, ImageMessage):handle_ImageMessage(event)if isinstance(event.message, LocationMessage):handle_LocationMessage(event)if isinstance(event.message, VideoMessage):handle_VideoMessage(event)if isinstance(event.message, FileMessage):handle_FileMessage(event)if isinstance(event.message, StickerMessage):handle_StickerMessage(event)if not isinstance(event, MessageEvent):continueif not isinstance(event.message, TextMessage):continuereturn 'OK'# Handler function for Text Message def handle_TextMessage(event):print(event.message.text)msg = 'Do you want to know the latest news about the disease?'line_bot_api.reply_message(event.reply_token,TextSendMessage(msg))# Handler function for Sticker Message def handle_StickerMessage(event):print(event.message.sticker_id)msg = 'That is an interesting Sticker.'line_bot_api.reply_message(event.reply_token,TextSendMessage(msg))# Handler function for Image Message def handle_ImageMessage(event):line_bot_api.reply_message(event.reply_token,TextSendMessage(text="This photo has been stored successfully"))# Handler function for Location Message def handle_LocationMessage(event):line_bot_api.reply_message(event.reply_token,TextSendMessage(text="I am sure your community does not have infected person."))# Handler function for Video Message def handle_VideoMessage(event):line_bot_api.reply_message(event.reply_token,TextSendMessage(text="Nice video!"))# Handler function for File Message def handle_FileMessage(event):line_bot_api.reply_message(event.reply_token,TextSendMessage(text="Nice file!"))if __name__ == "__main__":arg_parser = ArgumentParser(usage='Usage: python ' + __file__ + ' [--port <port>] [--help]')arg_parser.add_argument('-d', '--debug', default=False, help='debug')options = arg_parser.parse_args()app.run(host='0.0.0.0', debug=options.debug, port=heroku_port)

具體完整項目請訪問我的github:wcc8090

總結

以上是生活随笔為你收集整理的LINE chatbot机器人开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。