在Slack上做一個聊天機器人 — Botkit

果思設計小編
Goons
Published in
4 min readJul 22, 2019

Slack相信是很多人或是公司在使用的通訊平台。

Slack本身也具備許多方便的功能,例如:reminder,而上述說的reminder其實就是透過了一個叫slackbot的機器人來做到。

我們很好奇既然可以做到提醒,那是不是能夠客製化提醒的內容呢?

開始尋找能夠在Slack上自訂提醒內容的方式。

在這過程中,發現透過一個獨立的機器人,能夠很容易的掌控發文的內容以及需求,產生出了這篇關於在Slack上製作一個自己的機器人的文章。

Botkit

首先,我們需要的是能夠幫助使用者建立起機器人的開發工具。

在網路上有許多種的機器人開發工具,例如:Hubot、Botkit…… 在這邊選擇使用 Botkit 作為開頭。

這邊有Botkit的Github連結,Botkit同時也支援許多的平台,包含我們這次要支援的Slack同時還有FB Messenger、web、hangouts等。

Botkit中包含了HearConversation兩種功能。

Hear指的便是監聽器,它可以讓我們的機器人聽到訊息;聽到訊息後便需要Conversation來進行對話。

下面的是一些Hear的功能:

  • direct_message(一對一)
  • direct_mention(開頭訊息)
  • mention(文字中)
  • message_received(訊息接收)
  • ambient: channel(未被mention的訊息)

有了Hear之後,再來看看Conversation的功能:

  • startConversation
  • startPrivateConversation
  • createConversation
  • createPrivateConversation

而要使用Botkit,首先執行的環境必須要有Node.jsnpm;準備好環境後,便可以到Slack申請一個機器人的位置啦。

Slack與機器人設定流程

首先先到Slack申請一個app。

選擇「Create New App」後輸入名字和要運作的Workspace便可以生成一個App。生成後會出現一些基礎設定,若沒有可以自己選擇。

選擇「Add features and functionality」中的「Bots」,並設定機器人的資訊。

設定完成後選擇「Install your app to your workspace」,便可以安裝bot到Slack中囉。

接著便需要安裝機器人和一些設定,以Mac OS X 和 Linux的環境作為範例:

  1. 透過npm創造一個專案
mkdir slackbotcd slackbotnpm init

2. 再安裝botkit

npm i botkit — save

3. 我們還需要一個叫dotenv的套件,讓機器人能夠順利與Slack接上線

npm i dotenv — save

接著便可以開始設定機器人的環境了。

機器人對話設定

  1. 在專案資料夾中新增一個 .env 的檔案,並在檔案中用文字加入「SLACK_BOT_TOKEN=在Slack app設定中Install App Settings裡面的Bot User OAuth Access Token」後存檔。

2. 專案資料夾中新增 app.js,並在裡面加上程式碼。

3. 終端機中透過Node.js啟動我們的機器人就OK了!

Node app.js

最後就只要在Slack上跟機器人直接開啟對話,就會看到機器人的回覆囉!

我是果思設計的 Android 工程師 阿中,我們專注在 App 設計與 App 開發,希望文章對各位有幫助!

以上就是這次Slack自製機器人的過程,歡迎大家來討論。

--

--