# 建立 line chatbot **1.5h** [ToC] ## 圖文選單 - [LINE official account manager](https://manager.line.biz/) ![image](https://hackmd.io/_uploads/rJwhEvNlR.png) ![image](https://hackmd.io/_uploads/HyoHDgreC.png) ## button template 1. 在`views.py` 根據下面模板,組合搭配你喜歡的回應訊息 [【LineBot實作】機器人傳送的訊息種類大彙整](https://medium.com/@pearl3904/linebot%E5%AF%A6%E4%BD%9C-%E6%A9%9F%E5%99%A8%E4%BA%BA%E5%82%B3%E9%80%81%E7%9A%84%E8%A8%8A%E6%81%AF%E7%A8%AE%E9%A1%9E%E5%A4%A7%E5%BD%99%E6%95%B4-89201c2167fd#17ee) $\qquad$這次期末專題未使用到,故無範例程式 # 部署 1. 至 [ngrok](https://ngrok.com/download) 進行下載(上面是作業系統選項,我們選 zip 檔案比較簡單) ![image](https://hackmd.io/_uploads/HybFcjxz0.png) 2. 下載後解壓縮,會是一個 exe 檔案,將檔案移至【project】資料夾底下 (跟 `manage.py` 同一層) 3. 在ngrok官網註冊帳號 ![image](https://hackmd.io/_uploads/SyI8jjlGC.png) 4. 註冊完後, ngrok 會給你的 authtoken (用以認證授權)塗掉的地方就是我的 authtoken ![image](https://hackmd.io/_uploads/ByVe3jlfC.png) 6. `$ ./ngrok authtoken 'ngrok授權碼'` 7. `$ ngrok http <port>` (<port> 一般是 8000) ex. `./ngrok http 8000` 8. 顯示如下 ![image](https://hackmd.io/_uploads/S1ZDTslMA.png) - 上述之 https://c69b-124-218-214-78.ngrok-free.app (倒數第二行) 是所用網址,將其複製 9. 到[line developers](https://developers.line.biz/en/),登入並找到 Messaging API" 10. 在 webhook 貼上 ![image](https://hackmd.io/_uploads/B1Cynp3VR.png) 11. 回到 `url.py` 檔案 ```python= from django.contrib import admin from django.urls import path from app import views urlpatterns = [ path('admin/', admin.site.urls), path('callback', views.callback), ] ``` --- # 成果範例 ## 1. Create ![S__13992108](https://hackmd.io/_uploads/H1ip6r64A.jpg) ![image](https://hackmd.io/_uploads/BkAgTBpN0.png) ![S__770052](https://hackmd.io/_uploads/SkUMRIpEA.jpg) ## 2. Read ![S__13992181](https://hackmd.io/_uploads/rkYwmwTNA.jpg) ![S__13992156](https://hackmd.io/_uploads/HJ_iOUpNC.jpg) ![image](https://hackmd.io/_uploads/BkrXX8aEC.png) ## 3. update ![image](https://hackmd.io/_uploads/BkaHXva4C.png) ![image](https://hackmd.io/_uploads/BkUgNDTN0.png) ## 4. delete ![S__770054](https://hackmd.io/_uploads/HklqWPpE0.jpg) ![image](https://hackmd.io/_uploads/S1wtgDaER.png) ![image](https://hackmd.io/_uploads/SJD9lwaNA.png)