--- # 3.0-line robot --- # 3.0-line robot # 新機準備 ## node.js [下載(https://nodejs.org/zh-tw/download/) [node.js 安裝不要勾這個](![](https://i.imgur.com/4IpvIsl.png)HINT a@0 [套件下載網](https://www.npmjs.com/) 讓json檔因為是npm而圖案變化 ![](https://i.imgur.com/97BP9Xo.png) CTRL + SHIFT + P to open the Command Palette. Search for “Terminal: Select Default Profile” [Postman](https://www.postman.com/downloads/?utm_source=postman-home) [Cchrome: JSON Viewer](https://chrome.google.com/webstore/detail/json-viewer/gbmdgpbipfallnflgajpaliibnhdgobh) --- ## 基本安裝(在工作資料夾) 新增 .env 打上 ! CHANNEL_ID=xxx CHANNEL_SECRET=xxx CHANNEL_ACCESS_TOKEN=xxx (不空格!) f1 json>喜好設定 新增: "editor.codeActionsOnSave": { "source.fixAll.eslint": true } const $ = cheerio.load({data}) --- # 初學者執行 ## line 註冊 https://developers.line.biz/console/channel/1657126199 進入下方 ![](https://i.imgur.com/Otwbax0.png) 更新成下方 ![](https://i.imgur.com/e2KqbmJ.png) 去line 綁定(1.機器人要開(index.js) 2.env設定好 3.開啟ngrok 貼上網址給Line ) --- # 有舊檔可免執行(npm i) npm init --yes package.json 最上方新增 “type”: “module” npm i linebot axios dotenv cheerio(可用jQ更改網頁 )node-schedule(定時) npm i -D eslint nodemon ngrok(插件引入比較快) -g(全域安裝,任何資料夾都可,但不會顯示在package.json(久了學生容易忘記要裝))(上伺服器也要記得補裝) 裝eslint插件: F1 eslint >enforce>import>none>no>(勾)node>popular>standard>json>?npm >yes>設定完就有.eslintrc.json ![](https://i.imgur.com/o2ooPVk.png) "dev": "nodemon index.js", "start": "node index.js", "ngrok": "ngrok http 3000 --region jp", (npm run start是預設通用指令,大家都會設) npm run (+簡寫開頭) "pre(開頭)": "tsc" (在(開頭)執行前多一個步驟) 如果事情多 可以 &&(老師記得是這個) 再加指令 --- # 開始操作: --- ngrok: 1.npm run ngrok 2.複製顯示的forwarging 網址到 ![](https://i.imgur.com/8ZZjfYO.png)(記得https) 記得... import 'dotenv/config' ![](https://i.imgur.com/jih4Hh7.png) ## 初始完成 --------------- LINE 回復格式打法: ![](https://i.imgur.com/n9vVQVD.png) heroku(註冊+綁信用卡可多450待機時間) https://devcenter.heroku.com/articles/heroku-cli # 部屬 ------------ 安裝heroko(win64) cmd heroku 確認正常 cmd:heroku login cmd: heroku git:clone -a linebot--rain ![用vscode新增](https://i.imgur.com/n0uJ5Xi.png) ![貼上url 然後自己命名](https://i.imgur.com/fKA7meA.png) --- 登陸後建新app ![](https://i.imgur.com/r3J9VvC.png) .env的內容於下面vars ![](https://i.imgur.com/0puf41r.png) ## 調整時區 加變數 TZ:Asia/Taipei cmd: heroku git:remote -a 名稱 ![](https://i.imgur.com/HFOlAva.png) ![](https://i.imgur.com/uN1xEBU.png) ![](https://i.imgur.com/jkiJ6Zz.png) --- ![](https://i.imgur.com/x51pI5J.png) ![](https://i.imgur.com/5AFOBmL.png) --- **heroku logs -a 你的app名稱 --tail 持續看到server的資訊** ![](https://i.imgur.com/AG6q0w8.png) 網址貼到line 驗證那 ![](https://i.imgur.com/oTGzHPD.png) ![](https://i.imgur.com/o3W71yU.png) 貼到LINE Webhook URL ![](https://i.imgur.com/UZRgbU2.png) ---------- fs 除錯: import fs from 'fs' (放reply下面,會直接有async特性最後跑) fs.writeFileSync('bubbles.json', JSON.stringify([ { type: 'flex', altText: '共通課程', contents: { type: 'carousel', contents: bubbles.slice(0, 2) } } ], null, 2)) 或是: console.log(JSON.stringify(???), null, 2) ## 小坑: ![](https://i.imgur.com/Y6XVdMo.png)