---
# System prepended metadata

title: Line Bot + Django 學生成績查詢系統

---

# Line Bot + Django 學生成績查詢系統
# Abstract
此篇教學快速讓您設定一個 Line 機器人。設定完成之後你只要把成績放到Google試算表，就可以讓學生查詢他自己的成績。
## 原理簡述
- 學生透過 Line 機器人跟你設定的網站進行註冊。
- 你在Google試算表填入學生成績，而且包含「學號」的欄位。
- 妳將該試算表連結放進網站後台。
- 驗證通過的 Line 帳號可以透過他註冊的學號查詢他自己的成績。
## 你會需要使用
- Replit
- Google 試算表
- Line Bot

## 注意
- Replit 免費版的話別人可以看到你的程式碼。
- Replit 免費版過一段時間會自動休眠，送指令後過幾秒會重新啟動。
- 有心人士可以取得你後台的資料。所以請確保後台沒有放入重要資料。
- Google 表單請設定為透過連結可以檢視。
- 驗證帳號可以預設為通過，但要注意可能有學生打錯或故意填他人學號。
- 本教學僅供學術交流、個人使用。並請自負使用後的任何責任。

# 使用方式 - 學生
## 查詢使用方式
```
.usage
```
![](https://i.imgur.com/S947s4S.jpg)

## 註冊
只有第一次使用需要註冊。
```
.register
學號
```
![](https://i.imgur.com/UexOrdQ.jpg)

## 查詢成績
成績代碼由老師給，每個試算表貼到後台的時候會有一組。
```
.score
成績代碼
```
- 已開通，有填代碼
![](https://i.imgur.com/PHLhyQr.jpg)
- 若還沒註冊
![](https://i.imgur.com/q9ka1qs.jpg)
- 若還沒開通
![](https://i.imgur.com/pOgSFqz.jpg)
- 若已開通但是沒填代碼
![](https://i.imgur.com/zAejHV6.jpg)


# 使用方式 - 老師
這邊寫的是設定完成之後的使用，
第一次設定請先往下拉到設定的地方。
## Google 試算表
- 請到Google試算表建立你的成績冊。
- 欄位一定要有「學號」，用來當作索引的。
- 欄位請「不要重複」。
- 設定共用，知道連結者可以檢視，並複製連結。

## 後台
- 到你的 /admin 登入
- 點擊 Score configs
![](https://i.imgur.com/3xecf4b.png)
- 將剛剛試算表的連結貼到 `url`
    - Title: 給學生顯示的標題
    - Code: 自動生成，不要改變它
    - Exclude field: 妳試算表中不想要顯示給學生的欄位。用逗號或是頓號隔開皆可
![](https://i.imgur.com/SQ3qlTk.png)
- 設定好後按 SAVE

## 驗證帳號
- 點擊 Students
- 你會看到一堆 學生學號 - 名稱
- 看誰還沒驗證通過，點他
- 把 is verified 打勾
![](https://i.imgur.com/EXQV3tn.png)
- 如果有其他資料需要更改也可以改。但記得不要改 user id，這個是 Line 的 user id
- 改好按 SAVE

## 預設帳號驗證通過
你可以到 `score_bot/models.py`把False改成True，這樣預設會是通過。很方便，但請自行注意會不會有人故意輸入其他人的學號。
![](https://i.imgur.com/7Y91ToA.png)

# 設定
只有第一次使用或你想更改設定的時候會需要看這裡。
以下妳需要：
- 註冊 [Replit](https://replit.com)，可以用 Google 登入。
- 有一個 Google 帳號，假設大家都有，不贅述。
- 有一個 Line 帳號，畢竟我們要做一個 Line 機器人。
- 到 Line Bot 建立你的機器人。
- Line Notify (optional) 可以讓你看到別人對你的機器人說了什麼，不一定要使用。

## Start with Line Bot
- 到 [Line 開發者網站](https://developers.line.biz/zh-hant/?status=success)，右上角登入
- 第一次使用應該需要按 Create 來創立一個 Provider
![](https://i.imgur.com/FzK3lfA.png)
- 點你創立好的 Provider，新增一個新的 channel。你會需要填些有的沒的，應該看了就會，這裡不贅述。
![](https://i.imgur.com/fIe4dcH.png)
- 進去之後到 Basic Settings 有個 channel secert ，如果沒有出現就按旁邊的 Issue。這個等等用到。
![](https://i.imgur.com/WVhqlwk.png)
- 到 Basic Settings 旁邊的 Messaging API 拉到最下面，有一個 Channel access token。按 Issue ，這個等等用到。


## Replit
- 先到 Replit 建立一個帳號，建議 Google 登入。
- 進到我的 [Line bot 專案頁面](https://replit.com/@kyle1228/myscorebotdemo?v=1)
- 到 Consloe 輸入
    ```bash=
    python
    import secrets
    secrets.token_urlsafe(32)
    ```
    並且把結果複製下來。
    ![](https://i.imgur.com/S09k1do.png)
- 點左方 Sercert，將 Key 設定為 `SECRET_KEY`，value 設定為剛剛的結果。
![](https://i.imgur.com/AvYcxQN.png)
- 到 Console 輸入 `python manage.py createsuperuser`，這邊是設定你的管理者帳號。
- 設定完成之後按下 RUN （也有可能他自己開始跑了）
- 到 Webview 的地方按右上角，他會用新視窗開啟。
![](https://i.imgur.com/i2wgZqX.png)
- 把網址複製起來，以我的為例：`https://myscorebotdemo.kyle1228.repl.co/`
- 在後面增加 admin，妳就可以登入後台了。
- 在後面增加`score_bot/callback'`，以我的為例：`https://myscorebotdemo.kyle1228.repl.co/score_bot/callback`
- 貼到 Line Bot 設定頁面中的 Messaging API 的 Webhook URL。
- 按一下 Verify 看有沒有成功。
- 下方 User Webhook 打開。
- 完成！到這邊設定結束。當然你可以在 Line Bot 設定頁面小研究一下，可以進行一些設定。但不影響功能，這裡不贅述。
- 設定頁面有個 QR Code，可以把你的機器人加進 Line 囉！