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