gpt4 book ai didi

bots - 如何从reaction_ added 事件中获取线程回复的内容?

转载 作者:行者123 更新时间:2023-12-03 17:02:09 24 4
gpt4 key购买 nike

我正在构建一个 slack FAQ 应用程序,它使用消息 react 来收集问题的最佳答案。我的计划是通过使用 reaction_added 保存任何具有积极 react 的 Slack 消息。事件以获取 TS 属性,然后是 conversations.history获取消息内容的方法。

这适用于父级或非线程消息,但它不适用于线程内的回复消息。出于某种原因,conversations.history方法在使用线程回复的 TS 时返回无关消息。

我检查了 Slack API conversations.history方法文档以查看回复是否以任何特殊方式处理。我评论了 conversations.replies看看它是否有帮助的方法,但由于 reaction_added事件只是为消息提供了一个 TS id,没有可以与 conversations.replies 一起使用的 thread_ts 值。方法。

我正在使用 bolt 框架。这是尝试使用 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);
}
});

预期结果:
发布 react 的线程回复的消息内容

实际结果:
slack channel 最新消息的消息内容

最佳答案

我不确定它最近是否发生了变化,或者我误读了文档,但是 conversations.replies API 端点不需要 thread_ts包含父线程时间戳的值,以便检索线程回复。
event.item.ts reaction_added 提供的值event 足以检索添加了 react 的回复的消息内容。

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

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);
}
});

关于bots - 如何从reaction_ added 事件中获取线程回复的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58464522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com