安裝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網址。