2016-11-05 113 views
0

我使用的是slacks events API並已設置訂閱reactions_added事件。現在,當一條消息被添加到消息中時,鬆弛會向我發送一個帖子正文,其中包含已發送事件的所有詳細信息,如described here查看消息的事件API文本

我遇到的問題是我想要獲取詳細信息,特別是我的用戶已回覆的消息的text,以便我可以解析/存儲等特定消息。我認爲該消息會返回某種類型的UUID,然後我可以響應回調並獲取文本,但是我發現很難獲取特定的消息。

我看到的唯一端點是channels.history,它似乎沒有給我所要求的粒度。

所以tl; dr是:我如何查找通過slacks API,從事件API發送的消息文本?提供我認爲足夠的event_ts,channel和message ts的信息。我正在使用ruby slack-api gem FWIW。

回答

3

您確實可以使用方法channels.historyhttps://api.slack.com/methods/channels.history)從公共頻道檢索消息。調度的reaction_added事件包括原始消息的渠道ID和時間戳(在item中),並且channelId +時間戳的組合應該是唯一的。

請注意,儘管您使用了正確的時間戳。您需要使用從文檔item.tsevent_ts

完整的示例調度的事件:

{ 
    "token": "z26uFbvR1xHJEdHE1OQiO6t8", 
    "team_id": "T061EG9RZ", 
    "api_app_id": "A0FFV41KK", 
    "event": { 
      "type": "reaction_added", 
      "user": "U061F1EUR", 
      "item": { 
        "type": "message", 
        "channel": "C061EG9SL", 
        "ts": "1464196127.000002" 
      }, 
      "reaction": "slightly_smiling_face" 
    }, 
    "event_ts": "1465244570.336841", 
    "type": "event_callback", 
    "authed_users": [ 
      "U061F7AUR" 
    ]} 

所以調用channels.history與這些值設置應該工作:

  • 最新= item.ts值
  • 最早= item.ts值
  • 包含式E = 1
  • 通道= item.channel重視

如果你想從你需要使用groups.history私人渠道獲得的消息。

+0

'mpim.history'僅適用於多方直接消息頻道。它不適用於正常頻道。 –

+0

是的。我已經更新了它。 – Joel

+0

完美。謝謝 – Joshua