Slack 機器人自動 Like👍 – 透過 Slack API 在訊息添加 Emoji

Slack 機器人自動 Like👍 - 透過 Slack API 在訊息添加 Emoji 1
Product screenshots from Slack Official Brand Assets

不知道你有沒有用 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
適用於 :
Token 類型所需 scope(s)
botreactions:write 
userreactions:write 
classic botbot

此方法將一個反應(表情符號)添加到項目(文件,文件註釋,頻道消息,群組消息或直接消息)。 必須指定 file,file_comment,或者 channel + timestamp 的組合,以上參數的其中之一。

參數


token

必需

所需範圍的 Authentication token。

例子:xxxx-xxxxxxxxx-xxxx


channel

必需

要添加反應的消息所發布了的頻道。

例子:C1234567890


name

必需

反應(表情符號)的名稱。

例子:thumbsup = :+1: 👍

※ 可以參考 📙 Emojipedia — 😃 Home of Emoji Meanings 💁👌🎍😍


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&timestamp=1234567890.123456

如何找取 timestamp

第 1 步

在 Slack 的消息上面按 ‧‧‧,選擇 Copy Link 取得該消息的 URL。例如:
https://<team_name>.slack.com/archives/<channel_id>/p1234567890123456 
最尾的 16 位數字字串就是代表 timestamp,把一個 . 插入到字串,使其變成一個 10 位 +6 個小數點位的數字。

Slack 機器人自動 Like👍 - 透過 Slack API 在訊息添加 Emoji 2

第 2 步

通過 API 取得消息歷史,例如: channels.historygroups.historyconversations.history 。使用 GET 方法取得消息歷史之後,分析回傳的資料,從 JSON 格式之中提取 messages。以下是一個 JavaScript 例子:

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 格式轉換


回傳值

典型的成功回傳反應:

JSON
{ 
    "ok": true 
}

典型的錯誤回傳反應:

JSON
{ 
    "ok": false,
    "error": "already_reacted"  
}

進行此調用後,將保存反應,並通過 RTM API 廣播 reaction_added 事件。( RTM API = Real Time Messaging API )


錯誤標籤

請到參考 Slack API 上的說明。

如果您喜歡這篇文章,請分享到您的 Facebook 和 Twitter。您也可以通過 Ko-fi 捐款支持本站。

Scroll to Top