メッセージの反応を使用して質問に対する最良の回答を収集する 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チャンネルの最新メッセージのメッセージ内容