6

メッセージの反応を使用して質問に対する最良の回答を収集する Slack FAQ アプリを構築しています。reaction_added私の計画は、イベントを使用して TS 属性を取得し、次にconversations.historyメソッドを使用してメッセージのコンテンツを取得することにより、肯定的な反応を持つ Slack メッセージを保存することです。

これは、親レベルまたはスレッド化されていないメッセージではうまく機能しますが、スレッド内の返信メッセージでは機能しません。スレッド応答の TS を使用すると、何らかの理由でconversations.historyメソッドが無関係のメッセージを返します。

Slack APIconversations.historyメソッドのドキュメントをチェックして、返信が特別な方法で処理されているかどうかを確認しました。conversations.repliesメソッドが役立つかどうかを確認しましたが、イベントは単にメッセージの TS ID を提供し、メソッドreaction_addedで使用できる thread_ts 値を提供しないためです。conversations.replies

ボルトフレームワークを使用しています。reaction_addedメソッドでイベントを使用しconversations.historyてメッセージ コンテンツを取得しようとするコードのスニペットを次に示します。

app.event('reaction_added', async ({ event, context, say }) => {
  try {
    const result = await app.client.conversations.history({
      token: process.env.SLACK_USER_TOKEN,
      channel: event.item.channel,
      latest: event.item.ts,
      limit: 1,
      inclusive: true
    });
    save(`${result.messages[0].text}`);
  }
  catch (error) {
    console.error(error);
  }
});

期待される結果: リアクションが投稿されたスレッドの返信のメッセージ内容

実績:slackチャンネルの最新メッセージのメッセージ内容

4

1 に答える 1