Skip to content

Bill2015/linebot-report-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LineBot 回報機器人

一個簡單的回報機器人,省去一些小麻煩
順便練習一下LineBot串接跟部屬
並且使用了 Google 的 Firebase 去做資料儲存
或者是 Local 的資料儲存方式

展示

回報 格式化回報資料

前置需求

  • Line 帳號
  • Line 機器人帳號
  • NodeJs v18
  • ngrok

    Line Bot 環境測試用,因為 Line Bot 強制需要用 SSL 憑證

  • 可選 render

    雲端伺服器架設,免費的

  • 可選 FireBase

    雲端資料庫

環境檔案

當你 Clone 完專案後
有兩個檔案需要自己手動新增
因為涉及到一些隱私
都新增在跟目錄即可

.env

# 資料儲存類型 (local、firebase)
STORAGE_TYPE="local"|"firebase"
# 伺服器連接埠
PORT=<port>
# Line 的 Access Token
LINE_ACCESS_TOKEN=<token>
# Line 的 Access 金鑰
LINE_ACCESS_SECRET=<secret>
# 只有此 Admin 才有辦法使用其他機器人指令
ADMIN_UUID=<uuid>
# 機器人只會在這個群組中才會有反應
TARGET_GROUP_UUID=<uuid>

# FireBase 相關
# 如果用 Local 澤都不用填寫
FIREBASE_API_KEY=<apiKey>
FIREBASE_AUTH_DOMAIN=<authDomain>
FIREBASE_PROJECT_ID=<projectId>
FIREBASE_STORAGE_BUCKET=<storageBucket>
FIREBASE_MESSAGE_SENDER_ID=<messagingSenderId>
FIREBASE_APP_ID=<appId>
FIREBASE_MEASUREMENT_ID=<measurementId>


member.json
結構為 key 為 Id, Value 為名子

{
    "xxxxxxx": "Bill",
    "xxxxxxa": "John",
    ...
    "xxxxxxx": "Kevin",
    "xxxxxx9": "Sandy"
}

啟動

安裝套件、編譯

npm run build

開啟伺服器

npm run start

開啟 ngrok 代理伺服器

#將個人 Authtoken 加入 ngrok agent 中
ngrok config add-authtoken <your Authtoken>

#利用 ngrok agent 與本機專案的 port (預設 38888) 開啟安全通道
ngrok http 38888

複製這串中的 https://xxxx-xxx-xx-xx-xxx.ngrok-free.app 到 Line Bot Console 的 Webhook 上,並且驗證看看是否正常

Forwarding                    https://xxxx-xxx-xx-xx-xxx.ngrok-free.app -> http://localhost:38888

LineBot

將 Line Bot 邀進群組 目前總共有 4 種指令

  • $reset

    重制所有人的回報紀錄

  • $fmt

    產生回報格式文字

  • $left

    印出還有哪些人尚未回報

  • $xxxx xxxx

    回報訊息

Releases

No releases published

Packages

No packages published