2016-11-05 11 views
0

私はスラックスevents APIを使用しており、reactions_addedイベントの購読をセットアップしています。メッセージに反応が追加されたとき、スラックは私にポストボディーを送り、ディスパッチされたイベントのすべての詳細をdescribed hereとします。イベントからメッセージのテキストを見るapiの応答

私が抱えている問題は、詳細を知りたいということです。具体的には、ユーザーが反応したメッセージのtextです。その特定のメッセージを解析/保存することができます。私は、メッセージがコールバックに応答してテキストを取得できるいくつかのタイプのUUIDで返されると仮定しましたが、特定のメッセージを取得することは困難です。

利用可能なエンドポイントはchannels.historyです。これは私が探している細かさを私に与えるものではありません。

したがって、tl; drは次のとおりです。イベントAPIから送信されるメッセージテキストであるvia slacks APIを検索するにはどうすればよいですか?私はevent_ts、チャンネルとメッセージを持っている情報を与える私は十分だと思った。私はRuby slack-api gem FWIWを使用しています。

答えて

3

パブリックチャネルからメッセージを取得するには、実際にchannels.historyhttps://api.slack.com/methods/channels.history)のメソッドを使用できます。 reaction_addedのディスパッチイベントには、元のメッセージのチャネルIDとタイムスタンプ(item)が含まれ、channelId + timestampの組み合わせは一意である必要があります。

正しいタイムスタンプを使用するように注意してください。だから、セットが動作するはずですこれらの値とchannels.historyを呼び出す

{ 
    "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" 
    ]} 

  • 最新=のitem.ts値をあなたはドキュメントからitem.tsないevent_ts

    全例送出されたイベントを使用する必要があります

  • 最も早い= item.ts値
  • inclusiv E = 1つの
  • チャンネル= item.channel値

あなたがgroups.historyを使用する必要がプライベートチャネルからメッセージを取得したい場合。

+0

'mpim.history'はマルチパーティの直接メッセージチャンネルのみです。通常のチャンネルでは機能しません。 –

+0

です。私はそれを更新しました。 – Joel

+0

パーフェクト。ありがとうございました – Joshua

関連する問題