把環境變數設定到機器上
export LINE_CHANNEL_SECRET="0f65b655xxxxxxabf6c"
export LINE_CHANNEL_TOKEN="KlXdEn5+sFt3aF1pRdxxxxxxyGoRh+8N9xdHCImK03x2n2vxoQ3J9OIthrSqYNF4BqIvNdhW3XkiGwdB04t89/1O/w1cDnyilFU="
export LINE_CHANNEL_ID="1495270559"
export LUIS_API_URL="https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/fba8ab1a-6a5c-4d01-9746-b7ede1712730?subscription-key=5f997f5dca334e9ebf60ec23bf6b4d87"
export PRESIDENT_KEY="GTR#673279834@@"
export BOT_NAME="WiWi"
PRESIDENT_KEY 社長金鑰
然後輸入以下指令啟動 server
npm install
npm start
在本機啟動server 開發的方式
先安裝ngrok,安裝完成並執行上面指令後,接著執行下列指令
ngrok http 5000
會產生一組外部網路可連結的網址,將此網址填入line develop 中的webhook即可
使用開發模式
npm run dev
啟動後,nodemon 會去監控所有檔案,一旦有變更會自動重啟程式。
- 群組、聊天室這兩種多人對話方式,需呼叫機器人名字才會執行動作
- 例如:WiWi,我要報名
- 目前使用mongodb。
- 使用的連接套件為 mogoose[http://mongoosejs.com/docs/guide.html]。
linebot.users
linebot.activities
linebot.chats
- mongoose提供exec(),可回傳promise,搭配await使用。
const user = await this.db.User.findOne({ userId: event.source.userId }).exec();
- 安裝 heroku command line 並且登入
heroku login
- 到專案資料夾下執行初始命令
heroku apps:create <appname>
heroku addons:create mongolab:sandbox
雖然是免費的但是仍然會要求輸入信用卡資訊,準備一張沒有錢的visa金融卡填進去就好
git push heroku master
- 部屬完成之後到專案的網站如果出現
Hi~! It's working.
表示部屬成功了
至line business 網址修改 bot api url
.
├── app.json
├── database (目前使用nedb)
│ └── activities.db
│ └── users.db
│ └── chats.db
├── LUIS
│ └── app.json (LUIS 訓練資料)
├── package.json
├── Procfile (設定部屬到heroku以後要執行哪些指令)
├── README.md
└── src
├── public (未來網頁放置的地方)
│ └── index.html
└── serverIndex.js (server主程式)
├── modules (各intent模組程式碼)
│ └── index.js (統一匯出modules)
│ └── createActivity.js
│ └── joinActivity.js
│ └── listUsers.js
│ └── registeredPresident.js
│ └── leaveActivity.js
│ └── None.js
└── service
└── luis.js (串接luis api 功能實做)
└── linebot.js (擴充連接資料庫功能)
└── database.js (宣告nedb)
└── trashtalk.js (垃圾話專區)
每次寫完程式以後可以輸入 npm run lint
來看哪邊寫的不好
補充說明:目前的npm run dev 有包含 npm run lint 的指令,必須通過lint測試才可以順利啟動server
- registeredPresident (註冊社長)
- createActivity (社長建立活動)
- joinActivity (社員加入活動)
- leaveActivity (社員活動請假)
- listUsers (列出活動對象)
- location (活動進行的地點)
- activityTime(活動進行的時間)
- activityStartTime (活動開始時間)
- activityEndTime (活動結束時間)
星期三建立活動時間18:00~20:00地點大魯格草衙道
intent: createActivity
entity:
location: 大魯格草衙道
activityStartTime: 18:00
activityEndTime: 20:00