Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

122
Visualizações
Responda con un mensaje enriquecido como un bot de Slack

Estoy trabajando en una aplicación de holgura de Node.js que contiene un usuario bot. Pero no sé cómo responder a un usuario con un mensaje enriquecido como bot.

Ejemplo:

Puedo responder con mensajes simples sin problemas usando este código:

 import * as SlackClient from '@slack/client'; slackBot = new SlackClient.RtmClient(bot_access_token) slackBot.on(SlackClient.RTM_EVENTS.MESSAGE, message => { slackBot.sendMessage('Hello', message.channel); }); slackBot.start();

Pero la API RTM no admite mensajes enriquecidos:

La API RTM solo admite la publicación de mensajes simples formateados con nuestro modo de formato de mensaje predeterminado. No admite archivos adjuntos ni otros modos de formato de mensajes. Para publicar un mensaje más complejo como usuario, los clientes pueden llamar al método chat.postMessage Web API con as_user establecido en verdadero.

así que traté de usar el cliente web para responder con mensajes enriquecidos y me mudé a este código:

 import * as SlackClient from '@slack/client'; slackWebClient = new SlackClient.WebClient(access_token); slackBot = new SlackClient.RtmClient(bot_access_token) slackBot.on(SlackClient.RTM_EVENTS.MESSAGE, message => { slackWebClient.chat.postMessage(message.channel, 'Hello', { attachments: myAttachments }); }); slackBot.start();

este enfoque funciona cuando pruebo el bot con mi cuenta. Pero si otro usuario del equipo escribe un DM al bot, slackWebClient.chat.postMessage falla con el error error: channel_not_found . (También traté de agregar un parámetro as_user: true , pero el comportamiento es el mismo, excepto que los mensajes se firman con mi nombre en lugar del nombre del bot).

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Resuelto: creé una instancia de SlackClient.WebClient con el token de acceso de OAuth de usuario de bot en lugar del token de acceso de OAuth (también con as_user establecido en verdadero) y ahora funciona según lo previsto. No sabía que el token de acceso de OAuth del usuario de bot también se puede usar como un token para el cliente de API web.

Código de trabajo:

 import * as SlackClient from '@slack/client'; slackWebClient = new SlackClient.WebClient(bot_access_token); slackBot = new SlackClient.RtmClient(bot_access_token) slackBot.on(SlackClient.RTM_EVENTS.MESSAGE, message => { slackWebClient.chat.postMessage(message.channel, 'Hello', { attachments: myAttachments, as_user: true }); }); slackBot.start();
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda