Slack相信是很多人或是公司在使用的通訊平台。
Slack本身也具備許多方便的功能,例如:reminder,而上述說的reminder其實就是透過了一個叫slackbot的機器人來做到。
我們很好奇既然可以做到提醒,那是不是能夠客製化提醒的內容呢?
開始尋找能夠在Slack上自訂提醒內容的方式。
在這過程中,發現透過一個獨立的機器人,能夠很容易的掌控發文的內容以及需求,產生出了這篇關於在Slack上製作一個自己的機器人的文章。
Botkit
首先,我們需要的是能夠幫助使用者建立起機器人的開發工具。
在網路上有許多種的機器人開發工具,例如:Hubot、Botkit…… 在這邊選擇使用 Botkit 作為開頭。
這邊有Botkit的Github連結,Botkit同時也支援許多的平台,包含我們這次要支援的Slack同時還有FB Messenger、web、hangouts等。
Botkit中包含了Hear與Conversation兩種功能。
Hear指的便是監聽器,它可以讓我們的機器人聽到訊息;聽到訊息後便需要Conversation來進行對話。
下面的是一些Hear的功能:
- direct_message(一對一)
- direct_mention(開頭訊息)
- mention(文字中)
- message_received(訊息接收)
- ambient: channel(未被mention的訊息)
有了Hear之後,再來看看Conversation的功能:
- startConversation
- startPrivateConversation
- createConversation
- createPrivateConversation
而要使用Botkit,首先執行的環境必須要有Node.js、npm;準備好環境後,便可以到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的環境作為範例:
- 透過npm創造一個專案
mkdir slackbotcd slackbotnpm init
2. 再安裝botkit
npm i botkit — save
3. 我們還需要一個叫dotenv的套件,讓機器人能夠順利與Slack接上線
npm i dotenv — save
接著便可以開始設定機器人的環境了。
機器人對話設定
- 在專案資料夾中新增一個 .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自製機器人的過程,歡迎大家來討論。