Bots 如何获得线程回复';添加的事件中的内容?

Bots 如何获得线程回复';添加的事件中的内容?,bots,slack,slack-api,bolts-framework,Bots,Slack,Slack Api,Bolts Framework,我正在构建一个松弛的FAQ应用程序,它使用消息反应来收集问题的最佳答案。我的计划是通过使用添加的reaction\u事件获取TS属性,然后使用conversations.history方法获取消息内容,从而保存所有反应积极的松弛消息 这适用于父级或非线程消息,但不适用于线程内的回复消息。由于某些原因,conversations.history方法在使用线程回复的TS时返回一条不相关的消息 我已经检查了SlackAPIconversations.historymethod文档,查看是否以特殊方式处

我正在构建一个松弛的FAQ应用程序,它使用消息反应来收集问题的最佳答案。我的计划是通过使用添加的
reaction\u
事件获取TS属性,然后使用
conversations.history
方法获取消息内容,从而保存所有反应积极的松弛消息

这适用于父级或非线程消息,但不适用于线程内的回复消息。由于某些原因,
conversations.history
方法在使用线程回复的TS时返回一条不相关的消息

我已经检查了SlackAPI
conversations.history
method文档,查看是否以特殊方式处理回复。我查看了
conversations.repress
方法以查看它是否有用,但由于添加了
reaction
事件,因此事件只为消息提供一个TS id,而没有可用于
conversations.repress的线程值

我用的是螺栓框架。下面是一段代码,该代码尝试将添加的
反应
事件与
对话一起使用。历史记录
方法获取消息内容:

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通道中最新消息的消息内容

我不确定它是否最近更改了,或者我误读了文档,但是
对话。回复
API端点不需要包含父线程时间戳的
值来检索线程回复

添加的
反应
事件提供的
event.item.ts
值足以检索添加反应的回复的消息内容

因此,要获取添加了反应的消息的消息内容,您可以将我原始问题中的代码更新为:

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

可能重复的区别是,这个问题特别是在添加了
反应
事件时询问查找线程消息的建议,该事件没有提供查找线程消息所需的
线程
属性。你是对的。刚才重复了您的示例,添加的
反应
事件不包括
线程
属性,您需要识别线程中的相关消息。对我来说,这似乎是一个缺失的功能,所以我建议打开作为支持请求来放松一下。谢谢,我做到了。我也会继续寻找解决方法,如果我发现了什么,我会在这里发布。我也会就此联系Slack支持部门。我认为对他们来说,添加它将是微不足道的,所以我希望他们可以。