LINE BOT 實作筆記 (1)

教學目標

初步了解如何在 Mac OS 中透過 Azure 雲端服務建立 LINE Bot。

重點概念

步驟一: 申請 LINE Messaging API 開發帳號密碼。
步驟二: 安裝 Azure CLI 工具。

1
2
$ curl -L https://aka.ms/InstallAzureCli | bash
$ exec -l $SHELL

步驟三: 安裝 Node.js 工具。
步驟四: 下載 Azure 範本 (Node.js)。
步驟五: 執行 Node.js Web 應用程式。

1
2
3
4
$ git clone https://github.com/Azure-Samples/nodejs-docs-hello-world
$ cd nodejs-docs-hello-world
$ npm start
$ node index.js

步驟六: 測試 Node.js Web 應用程式。

1
http://localhost:1337

步驟七: 建立 Azure App 網站服務 (免費)。

1
2
3
4
5
$ az group create --name leoyeh --location westeurope
$ az appservice plan create --name quickStartPlan --resource-group leoyeh-me --sku FREE
$ az appservice web create --name leoyeh-me --resource-group leoyeh-me --plan quickStartPlan
$ az appservice web config update --linux-fx-version "NODE|6.9.3" --startup-file process.json --name leoyeh-me --resource-group leoyeh-me
$ az appservice web source-control config-local-git --name leoyeh-me --resource-group leoyeh-me --query url --output tsv

步驟八: 撰寫 LINE Bot 的接收與回應基本程式應用。

1
$ vi index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
const secret = "您的 Channel Secret";
const id = "您的 Channel ID";
var http = require('http');
var bodyParser = require('body-parser');
var express = require('express');
var request = require('request');

var port = process.env.port || 1337
var app = express();
app.use(bodyParser.json());

// 接聽來自Line伺服器中的訊息
app.post('/callback', function (req, res) {
console.log('callback: ', req.body);
var result = req.body.events;
for(var i=0; i < result.length; i++){
var data = result[i].message;
console.log('message content: ', data);
var message_data = '不是很了解您想問什麼耶~'
if (data.text.toLowerCase().indexOf('who')>-1 || data.text.indexOf('誰')>-1) message_data = '我名叫葉心寬,英文名字為 Leo Yeh,目前任職於國泰世華銀行核心系統部數據管理科的資訊人員,謝謝~';
else if (data.text.toLowerCase().indexOf('job')>-1 || data.text.indexOf('工作')>-1) message_data = '我在國泰世華銀行核心系統部2年,歐酷網路研究開發部門1年,以及台灣微軟行銷暨營運部門實習1年,工作經驗總計3年以上';

options = {
method: 'POST',
uri: 'https://api.line.me/v2/bot/message/reply',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer 您的 Access Token',
},
body: {
replyToken: result[i].replyToken,
messages: [{
type: 'text',
text: message_data,
}],
},
json: true,
}
request(options);
}
res.sendStatus(200);

});
http.createServer(app).listen(port);

步驟九: 安裝 Node.js 網站應用程式相關套件。

1
2
3
$ npm install express --save
$ npm install request --save
$ npm install body-parser --save

步驟十: 發佈 LINE Bot 程式碼至 Azure App 網站服務。

1
2
3
4
$ git remote add azure https://leoyeh@leoyeh-me.scm.azurewebsites.net/leoyeh-me.git
$ git add .
$ git commit -m "initial commit"
$ git push azure master

步驟十一: 設定 LINE Bot 的 Webhook URL,並且進行驗證。

1
https://leoyeh-me.azurewebsites.net/callback

步驟十二: 測試 LINE Bot,透過以下網址查看程式執行結果與記錄。

1
https://leoyeh-me.scm.azurewebsites.net/api/logstream

相關資源