https://www.learncodewithmike.com/2020/06/python-line-bot.html
-
安裝Python在本地端
-
開terminal測試是否安裝成功 >> py --version
-
pip install 需要的套件,見requirments.txt >> pip install -r requirements.txt
-
pip list 確認套件都安裝好了 (更新pip >>python.exe -m pip install --upgrade pip)
-
在terminal輸入下列 django-admin startproject mylinebot . #建立Django專案 python manage.py startapp foodlinebot #建立Django應用程式 python manage.py migrate #執行資料遷移(Migration)
-
開啟mylinebot專案主程式下的settings.py檔案,增加LINE Developers的兩個憑證設定,來與LINE進行連結 LINE_CHANNEL_ACCESS_TOKEN = 'Messaging API的Channel access token' LINE_CHANNEL_SECRET = 'Basic settings的Channel Secret'
-
並且,在INSTALL_APPS的地方,加上剛剛所建立的Django應用程式(APP), 'foodlinebot.apps.FoodlinebotConfig',
-
https://www.learncodewithmike.com/2020/06/python-line-bot.html 跟著 "四、開發LINE Bot應用程式" 的步驟
-
安裝Ngrok
-
在ngrok.exe 輸入官網提供的command line >> ngrok config add-authtoken 2Q5lhBX3aUR4QqfpkW3zUMmNKSz_2orpE2WGrBBTrc95xVNNa
-
接著,就可以透過Ngrok,將本機的埠號對外公開,以本文為例,Django在本機運行的埠號為8000,所以輸入以下的指令:ngrok http 8000
-
line developer Webhook URL >>https://7d3a-114-36-66-27.ngrok-free.app/foodlinebot/callback
- 到這邊目前完成一個echo line bot (py manage.py runserver 8000 & ngrok 要執行,linebot才能用)
- 但是網頁目前還是Page not found (404)
https://www.learncodewithmike.com/2020/07/python-web-scraping-line-bot.html
- 跟著步驟做
- 利用BeautifulSoup套件來解析網頁中的HTML原始碼
- scraper.py 要先拆解URL,在分別讀取HTML的class類別。
- 拿到class就可以回傳class的index給linebot
-
開啟ngrok.exe
-
ngrok config add-authtoken 2Q5lhBX3aUR4QqfpkW3zUMmNKSz_2orpE2WGrBBTrc95xVNNa
-
ngrok http 8000
-
line developer Webhook URL >>https://7d3a-114-36-66-27.ngrok-free.app/foodlinebot/callback
-
開啟VSCode,修正settings.py的ALLOWED_HOSTS = ['7d3a-114-36-66-27.ngrok-free.app']
-
python manage.py runserver 8000
-
驗證line developer Webhook URL
✓ 使用 ButtonsTemplate 建置 linebot 對話框,最多四個選項按鈕,每個按鈕最多有三個動作 https://www.learncodewithmike.com/2020/07/line-bot-buttons-template-message.html
✓ 使用 CarouselTemplate 建置 linebot 對話框,最多十個選項按鈕,每個按鈕最多有三個動作 https://steam.oxxostudio.tw/category/python/example/line-template-message.html#a3
- 使用 def handle_location_message(event)
- 需要加入 handler = WebhookHandler(settings.LINE_CHANNEL_SECRET) 這行。
- 加入 from linebot.models import MessageEvent, TextMessage, TextSendMessage, LocationMessage
- 加入 from linebot import WebhookHandler
- 使用 event.message.type 來判斷傳入的訊息為 文字 or 位置
- 使用 drinkShop.scrape() 爬飲料店分店的經緯度資料
- 用 haversine() function 計算使用者與飲料店分店的距離
- 使用generate_google_maps_link(),在views.py裡面。
飲料品項的連結:
- CoCo都可: https://jiatongoo.github.io/CoCo%E9%83%BD%E5%8F%AF.html
- 珍煮丹: https://jiatongoo.github.io/%E7%8F%8D%E7%85%AE%E4%B8%B9.html
- 迷客夏: https://jiatongoo.github.io/%E8%BF%B7%E5%AE%A2%E5%A4%8F.html
- 可不可熟成紅茶: https://jiatongoo.github.io/%E5%8F%AF%E4%B8%8D%E5%8F%AF%E7%86%9F%E6%88%90%E7%B4%85%E8%8C%B6.html
- 麻古茶坊: https://jiatongoo.github.io/%E9%BA%BB%E5%8F%A4%E8%8C%B6%E5%9D%8A.html
- 五桐號WooTEA: https://jiatongoo.github.io/%E4%BA%94%E6%A1%90%E8%99%9FWooTEA.html
- COMEBUY: https://jiatongoo.github.io/COMEBUY.html
- 清心福全: https://jiatongoo.github.io/%E6%B8%85%E5%BF%83%E7%A6%8F%E5%85%A8