安裝node.js並申請heroku
一、安裝Node.js,並編好程式
1、到 https://nodejs.org/en/download/ 下載合適的node.js版本並安裝
2、到https://notepad-plus-plus.org/download/下載合適的notepad++版本並安裝
3、到https://devcenter.heroku.com/articles/heroku-cli下載heroku專用的上傳檔案的程式,並安裝
4、在D:建立一個bottest的資料夾(可自行命名)
5、在bottest這個資料夾,建立一個叫做package.json的純文字檔案(建議可安裝notepad++來編輯),檔案內容如下:
{
"name": "bottest",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node ."
},
"author": "",
"license": "ISC"
}
6、接下來要為node.js安裝一些和Line溝通的模組,找到Node.js的command,進入指令模式
7、Node.js和Line溝通,須要linebot和express這二個模組,必須要安裝,指令如下:
- d:
- cd bottest (以上請依據自己的資料夾路徑修改)
- npm install linebot express --save
8、安裝完後,bottest資料夾底下,會多出一個叫node_modules的資料夾,原本的package.json這個檔案也會變成如下:
{
"name": "bottest",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node ."
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.15.3",
"linebot": "^1.3.0"
}
}
9、在bottest底下新增一個主程式,檔名叫做index.js,內容如下,請將申請LineBot時,取得的channelId、channelSecret及channelAccessToken三個資料,填入下面的內容中 (注意,引號不能刪掉),以下的程式,主要是使用者在Line上和LineBot對話,你說什麼話,LineBot就回你什麼話。
var linebot = require('linebot');
var express = require('express');
var bot = linebot({
channelId: '這裡改成自己Line的channelId',
channelSecret: '這裡改成自己Line的channelSecret',
channelAccessToken: '這裡改成自己Line的channelAccessToken'
});
//這一段的程式是專門處理當有人傳送文字訊息給LineBot時,我們的處理回應
bot.on('message', function(event) {
if (event.message.type = 'text') {
var msg = event.message.text;
//收到文字訊息時,直接把收到的訊息傳回去
event.reply(msg).then(function(data) {
// 傳送訊息成功時,可在此寫程式碼
console.log(msg);
}).catch(function(error) {
// 傳送訊息失敗時,可在此寫程式碼
console.log('錯誤產生,錯誤碼:'+error);
});
}
});
const app = express();
const linebotParser = bot.parser();
app.post('/', linebotParser);
var server = app.listen(process.env.PORT || 8080, function() {
var port = server.address().port;
console.log('目前的port是', port);
});
10、接下來還要做一個文字檔案,檔名叫做「.gitignore」,(沒錯,最前面有個點,不要漏掉了),檔案裡面內容:
node_modules
二、申請heroku空間,以便放置程式
因為要能和LineBot溝通的伺服器比須能提供https的服務,而https服務的SSL憑證是要錢的,所以我們必須找一個網路上提供的免費程式空間並且提供https的伺服器來放置程式,像azure、koa或是現在要介紹的heroku。
1、進入heroku,https://www.heroku.com/,點選右上角sign up註冊。
填寫相關資料
程式語言選擇Node.js
勾選「我不是機器人」後,按下「CREATE FREE ACCOUNT」,便可申請免費程式空間
2、接下來請到自己的email信箱,點擊確認的連結點
3、設定密碼
4、設定好密碼,點擊出現的連結,便可進入heroku
5、畫面的右上角,點選'New',再點選'Create new app',開始建立程式空間
6、為您的app取一個名稱,您的網站程式空間的網址便會是
https://app名稱.herokuapp.com,例如 https://test123.herokuapp.com
7、將在申請LineBot時所取得的ChannelAccessToken和ChannelSecret在setting的頁面輸入
(請用複製的方式輸入資料,不要自己打字,以免打錯)
三、上傳程式到heroku
1、在window的功能表,找到Git→Git CMD進入命令列模式,輸入以下指令
- d:
- cd bottest (以上請視自己程式放哪個資料夾而自行修改)
- heroku login (這邊請依據提示輸入申請heroku時,所填的帳號及設定的密碼)
- git config --global user.email "這裡請填上您旳email"
- git config --global user.name "這裡請填上英文暱稱名字"
(我以前上傳時不用執行以上兩行git config的命令,但是現在沒下這二個指令會出問題)
- git init
- heroku git:remote -a 在heroku申請的app名稱(上面步驟6取得的名稱)
- git add .
- git commit -am 'ok'
- git push heroku master
如此,便將自己電腦上寫好旳node.js程式上傳上去了
2、回到LineBot的設定畫面,接下來要把heroku放程式的網址,告訴LineBot(上面步驟6取得的網址)。按EDIT修改資料
3、將heroku建立app時取得的網址輸入Webhook URL欄位後,按SAVE。
4、依據下圖的步驟依序完成。下圖的QRCode的圖檔,請自行下載保留,才能讓別人掃瞄加入此好友。
5、用手機和剛加入的LineBot好友對話,隨便輸入什麼,它都會忠實回應回來。
至此,第一個LineBot程式大功告成。
附註:
heroku同一個帳號可以建很多個app,所以如果有不同功能的LineBot要建置,可以在heroku建立不同功能的app,但建好的app都有各自獨立的網址,在上面第3個步驟的Webhook URL必須要修改成相對應的app網址。