[Bottender] 如何在 Heroku 上部屬 LINE BOT
上一篇文章是 2015 了呢....
主要是之前已經寫過一個簡單的 LINE BOT,
但最近剛好有點時間(?),所以想要藉此機會全部重寫。
之前寫的機器人原始碼在這邊
https://github.com/Rainsting/TarotLineBot
---------------------------------------------------------------------------------------
這次我選擇由台灣人自己新開發的機器人框架 - Bottender,
在此時的版本是 v0.15.0。
由於這整包在中文圈內的討論似乎不多,大部分都是拿來用在 FB Messenger 上,
對於 LINE BOT & Heroku 的著墨很少,希望藉由這一篇簡單做個記錄。
1. 首先申請個 LINE@ 帳號,並開啟 developer 功能:
網路上其實很多資訊了,這邊就不多說,建議可以參考前人的文章:
LINE BOT 實戰 ( 原理篇 )
http://www.oxxostudio.tw/articles/201701/line-bot.html
這邊目的是取得 Channel secret & Channel access token,之後會用到。
2. 申請 Heroku 帳號,並安裝 Heroku CLI:
一開始用免費帳號就足夠了,申請帳號也可參考前人的教學:
Heroku安裝使用教學
https://ericjhang.github.io/archives/689940fd.html
3. 將 Heroku 產生的 Domain 連結到 Line Develop Console 的 Webhook URL 內
位置在 Heroku 的 Settings,複製底下 Domains and certificates 的後面那一段,
4. 安裝 bottender (以 Windows 為例)
首先按照官網步驟,使用 npm 安裝 bottender 套件
https://bottender.js.org/docs/GettingStarted
先自己取個好聽的名字,之後在過程中
1. platform 選擇 "line"
2. store session 選擇 "memory"
3. server 選擇 "express"
接著就會在當下目錄中看到我們剛剛新增的專案了。
5. 編輯 package.json,並告訴 Heroku 我們需要用的 node 引擎版本
由於我們會用到 async function,因此需要在環境內跟 Heroku 說我們要用的版本是什麼,編輯文件並加入以下內容:
6. 編輯 bottender.config.js,加入自己的 LINE accessToken & channelSecret
7. 編輯 index.js,修改程式碼
由於 heroku 不支援 server 監聽固定 port,因此我們需要把原先 server 應該要監聽的 port 透過 PORT 環境變數傳進去讓 server 知道,所以需要將原先的 server.listen 修改成這樣
這樣 Heroku 在組建 APP 時才不會發生 APP crash & Error R10 (Boot timeout) issue。
8. 同樣編輯 index.js,修改程式碼
因為 context.sendText 預設是用 push API,因此我們在這邊可以改成 replyText,或是在 new LineBot 內調整內容,讓他預設用 reply (after v0.15.0)
9. 在 Heroku 上建立新的 Git repository
10. 將修改內容 push 到 Heroku 上,部屬 BOT
以後如果有任何更動,要更新程式,那底下就重新再做一遍
之後如果要看 Log,可以隨時在 Heroku CLI 內即時觀看
Ref:
來寫個氣象機器人吧!
https://blog.techbridge.cc/2018/05/10/lets-build-weather-bot-1/
line bot 教學
https://ericjhang.github.io/archives/c7f31b57.html
Bottender Getting Started
https://bottender.js.org/docs/GettingStarted
Bottender Github
https://github.com/Yoctol/bottender
--
嗚嗚我只有 PC,要是有人能贊助我 MAC 就 (ry
主要是之前已經寫過一個簡單的 LINE BOT,
但最近剛好有點時間(?),所以想要藉此機會全部重寫。
之前寫的機器人原始碼在這邊
https://github.com/Rainsting/TarotLineBot
---------------------------------------------------------------------------------------
這次我選擇由台灣人自己新開發的機器人框架 - Bottender,
在此時的版本是 v0.15.0。
由於這整包在中文圈內的討論似乎不多,大部分都是拿來用在 FB Messenger 上,
對於 LINE BOT & Heroku 的著墨很少,希望藉由這一篇簡單做個記錄。
1. 首先申請個 LINE@ 帳號,並開啟 developer 功能:
網路上其實很多資訊了,這邊就不多說,建議可以參考前人的文章:
LINE BOT 實戰 ( 原理篇 )
http://www.oxxostudio.tw/articles/201701/line-bot.html
這邊目的是取得 Channel secret & Channel access token,之後會用到。
2. 申請 Heroku 帳號,並安裝 Heroku CLI:
一開始用免費帳號就足夠了,申請帳號也可參考前人的教學:
Heroku安裝使用教學
https://ericjhang.github.io/archives/689940fd.html
3. 將 Heroku 產生的 Domain 連結到 Line Develop Console 的 Webhook URL 內
位置在 Heroku 的 Settings,複製底下 Domains and certificates 的後面那一段,
4. 安裝 bottender (以 Windows 為例)
首先按照官網步驟,使用 npm 安裝 bottender 套件
https://bottender.js.org/docs/GettingStarted
npm install -g bottender
先自己取個好聽的名字,之後在過程中
1. platform 選擇 "line"
2. store session 選擇 "memory"
3. server 選擇 "express"
接著就會在當下目錄中看到我們剛剛新增的專案了。
5. 編輯 package.json,並告訴 Heroku 我們需要用的 node 引擎版本
由於我們會用到 async function,因此需要在環境內跟 Heroku 說我們要用的版本是什麼,編輯文件並加入以下內容:
"engines": { "node": ">= 7.6.0" }
6. 編輯 bottender.config.js,加入自己的 LINE accessToken & channelSecret
7. 編輯 index.js,修改程式碼
由於 heroku 不支援 server 監聽固定 port,因此我們需要把原先 server 應該要監聽的 port 透過 PORT 環境變數傳進去讓 server 知道,所以需要將原先的 server.listen 修改成這樣
server.listen((process.env.PORT || 5000), () => { console.log('server is running on 5000 port...'); });
這樣 Heroku 在組建 APP 時才不會發生 APP crash & Error R10 (Boot timeout) issue。
8. 同樣編輯 index.js,修改程式碼
因為 context.sendText 預設是用 push API,因此我們在這邊可以改成 replyText,或是在 new LineBot 內調整內容,讓他預設用 reply (after v0.15.0)
const bot = new LineBot({ accessToken: config.accessToken, channelSecret: config.channelSecret, sendMethod: 'reply', // Default: 'push' });
9. 在 Heroku 上建立新的 Git repository
heroku login cd my-project/ git init heroku git:remote -a (Heroku APP Name)
10. 將修改內容 push 到 Heroku 上,部屬 BOT
以後如果有任何更動,要更新程式,那底下就重新再做一遍
git add . git commit -am "(要養成寫 LOG 的好習慣)" git push heroku master
之後如果要看 Log,可以隨時在 Heroku CLI 內即時觀看
heroku logs --tail
Ref:
來寫個氣象機器人吧!
https://blog.techbridge.cc/2018/05/10/lets-build-weather-bot-1/
line bot 教學
https://ericjhang.github.io/archives/c7f31b57.html
Bottender Getting Started
https://bottender.js.org/docs/GettingStarted
Bottender Github
https://github.com/Yoctol/bottender
--
留言
張貼留言