不知道你有沒有用 Slack 這個辦公通訊軟體呢?在歐美的企業比較流行使用它來作為內部溝通平台,火熱人氣到有很多第三方 Slack Chatbots 開發出來,向辦公室及企業銷售自動化的方案。今次我也來介紹一個簡單的 Slack API,讓你思考如何編寫一個自動讚好 (auto-like) 的 Slack 聊天機器人。
在 Slack API Methods,讚好或者添加表情符號 (Emoji) 的操作隸屬於 reactions 類型,包括以下四種方法:
方法 | 描述 |
---|---|
reactions.add | 向項目添加反應。 |
reactions.get | 獲取項目的反應。 |
reactions.list | 列出用戶所給予的反應。 |
reactions.remove | 從項目中刪除反應。 |
若以編寫自動讚好的機器人作為例子,那麼要使用的就是 reactions.add
方法。
reactions.add
方法網址: | https://slack.com/api/reactions.add | ||||||||
---|---|---|---|---|---|---|---|---|---|
首選 HTTP 方法: | POST | ||||||||
接受內容類型: | application/x-www-form-urlencoded , application/json | ||||||||
Rate limiting: | Tier 3 | ||||||||
適用於 : |
|
此方法將一個反應(表情符號)添加到項目(文件,文件註釋,頻道消息,群組消息或直接消息)。 必須指定 file,file_comment,或者 channel + timestamp 的組合,以上參數的其中之一。
參數
token
必需
所需範圍的 Authentication token。
例子:xxxx-xxxxxxxxx-xxxx
channel
必需
要添加反應的消息所發布了的頻道。
例子:C1234567890
name
必需
timestamp
必需
要添加反應的消息的時間戳。
例子:1234567890.123456
file
不再適用
要添加反應的檔案
例子:F1234567890
file_comment
不再適用
要添加反應的檔案評論
例子:Fc1234567890
API POST 例子:
curl -X POST https://slack.com/api/reactions.add?token=xxxx-xxxxxxxxx-xxxx&name=thumbsup&channel=C1234567890×tamp=1234567890.123456
如何找取 timestamp
第 1 步
在 Slack 的消息上面按 ‧‧‧,選擇 Copy Link 取得該消息的 URL。例如:https://<team_name>.slack.com/archives/<channel_id>/p1234567890123456
最尾的 16 位數字字串就是代表 timestamp,把一個 . 插入到字串,使其變成一個 10 位 +6 個小數點位的數字。
第 2 步
通過 API 取得消息歷史,例如: channels.history、groups.history、conversations.history 。使用 GET 方法取得消息歷史之後,分析回傳的資料,從 JSON 格式之中提取 messages。以下是一個 JavaScript 例子:
var result = JSON.parse( response.getContentText() );
if ( result['ok'] ) {
messages = result["messages"];
for ( var i in messages ) {
var ts = messages[ i ].ts ; // get timestamp
}
}
timestamp 格式轉換
- slack api – How do i convert the simple system 24 hour format to Timestamp – Stack Overflow
- JavaScript Date Reference
- Get a UNIX timestamp with Javascript – Electric Toolbox
回傳值
典型的成功回傳反應:
{
"ok": true
}
典型的錯誤回傳反應:
{
"ok": false,
"error": "already_reacted"
}
進行此調用後,將保存反應,並通過 RTM API 廣播 reaction_added 事件。( RTM API = Real Time Messaging API )
錯誤標籤
請到參考 Slack API 上的說明。
如果您喜歡這篇文章,請分享到您的 Facebook 和 Twitter。您也可以通過 Ko-fi 捐款支持本站。