Tengo un bot que está destinado a responder mensajes en un canal con ciertas palabras clave que está escuchando. Lo tengo implementado y funciona perfectamente, pero responde en el canal en lugar de iniciar un hilo al mensaje de un usuario. Aquí está mi código que está destinado a iniciar el hilo:
app.message("ake up", async ({ command, say }) => { try { say({ text: "I'm awake! ⭐️ Do you need assistance?", thread_ts: message.ts }); } catch (error) { console.log("err") console.error(error); } }); No pasa nada cuando envío un mensaje diciendo "despierta". Cuando es lo mismo sin thread_ts: message.ts y solo dice say("I'm awake! ⭐️ Do you need assistance?")} , funciona perfectamente. y responde con eso.
Aquí está el comienzo de mi código para referencia:
require("dotenv").config(); const app = new App({ token: process.env.SLACK_BOT_TOKEN, signingSecret: process.env.SLACK_SIGNING_SECRET, socketMode:true, appToken: process.env.APP_TOKEN });Esto fue respondido en GitHub .
El truco aquí es que thread_ts está disponible solo para mensajes encadenados (identifica el mensaje principal que inició el hilo). Si desea iniciar un hilo, puede usar el valor ts del mensaje entrante:
app.message("ake up", async ({ message, say }) => { try { await say({ text: "I'm awake! ⭐️ Do you need assistance?" , thread_ts: message.thread_ts || message.ts}); } catch (error) { console.log("err") console.error(error); } });Consulte también la guía de detección de hilos en los documentos de Slack.