前置作業
開始之前,再確認一下你有成功安裝 Node.js 與 npm,指令如下:
# 查看 Node.js 版本
nodejs -v
# 查看 npm 版本
npm -v
新增自訂 Scripts
在之前的教學中,我們透過 Yo 建立 Hubot 後,你可以在整個 Hubot 專案裡看到有一個 scripts 資料夾,Hubot 啟動後會自動讀取這個資料夾裡面的 Scripts,所以這也就是我們接下來新增 Script 所要放置的地方。現在,讓我們新增一個簡單的 Script,你可以使用 JavaScript 或者是 CoffeeScript:
module.exports = (robot) ->
# Show some information
# 用法: show_info
robot.respond /show_info/i, (msg) ->
# 傳回多行文字訊息
msg.reply """Put your information here
and here ....
and here ....
"""
由上面簡單的範例你可以看到,Hubot 透過 robot.respond 來針對你所輸入指令做出反應,然後再利用 reply 回傳資料或是文字訊息。除了 respond 以外你也可以使用 hear。而 respond 與 hear 的差別在於,respond 只針對你所輸入的文字完全符合的狀況下才會做出反應,而 hear 則是會檢查文字中是否有符合的字串。下面則是比較進階的用法:
# Call a HTTP API
# 用法: call-http [param1] [param2]
robot.respond /call-http (.*) (.*)/i, (msg) ->
# 取得指令給予的 2 個參數
data = JSON.stringify({
param1: msg.match[1]
param2: msg.match[2]
})
# 送出 POST Request,並傳回訊息
msg.http('/url/to/your/service')
.header('Content-Type', 'application/json')
.post(data) (err, res, body) ->
if res
if res.statusCode isnt 200
msg.reply "Something goes wrong ..."
return
msg.reply "Return your data or messages"
else
msg.reply "Something goes wrong ..."
最後記得你自己建立的檔案 ( .js 或者是 .coffee ) 要放在 Scripts 資料夾底下。
整合 Hubot 與 Slack
我們剛剛建立的 Script 還沒有辦法正常的運作,因為 Slack 還不知道你 Hubot 的存在,所以我們需要去 Slack 上面註冊一個 Hubot。進入 Slack 後,點選 Apps & Integrations 然後選擇 Bot,在 Bot 列表中選擇新增一個 Hubot。新增完成後,你可以看到有一個 API_token,這個 Token 就是唯一能讓你的 Hubot 與 Slack 正常運作的關鍵。
啟動 Hubot
使用 API_token 方式有兩種,一種是啟動時加入參數,方法如下:
HUBOT_SLACK_TOKEN=your-api-token ./bin/hubot --adapter slack
或者把 API_token 加到你的環境變數中即可,如此一來我們就完成所有設定的步驟。接下來,你就可以開始在 Slack 中對 Hubot 下達指令。
Environment :
・ Debian
Reference :
・ Hubot