webhook programming bot apps slack-api slack

slack-api - programming - slack mx



Como mencionar al usuario en slack.client (2)

Esta podría ser una pregunta simple, pero no puedo hacer que funcione.

Estoy usando Slack Python Api para mencionar a un usuario en un canal, y me refiero al documento aquí, https://api.slack.com/methods/chat.postMessage , y mi código es tan simple como

from slackclient import SlackClient sc = SlackClient(token) message = sc.api_call( ''chat.postMessage'', channel=''#channelname'', text=''This is a test.'' )

Esto enviará un mensaje al canal, pero no puedo encontrar ninguna opción para mencionar a los usuarios. Y traté de poner @someone dentro del mensaje como

text=''@someone This is a test.''

El mensaje será publicado pero en texto plano, pero realmente mencionando a alguien. Por cierto, estoy usando un Test Token. (¿O tal vez esta función solo está disponible para un token autorizado?)

¿Hay alguna opción o método para hacer esto?
Gracias de antemano.


Después de un poco de exploración, obtuve la solución que es bastante simple. No sé cómo podría perderme.

message = sc.api_call( ''chat.postMessage'', link_names=1, channel=''#channelname'', text=''@someone This is a test.'' )

use la opción link_names=1 para vincular canales o nombres de usuarios automáticamente en el mensaje de texto. Esto hará el truco.

Gracias a todos.


Publicar una respuesta actualizada ya que este método ya no funciona desde que Slack actualizó su API. Ahora tienes que descubrir la ID del usuario usando users.list , o simplemente buscándolo en la aplicación Slack en su perfil.

Luego, para un ID de usuario determinado, los menciona configurando el texto de la siguiente manera: <@ ID de usuario >. El argumento link_names ahora es irrelevante. Así que este sería el código a usar ahora:

message = sc.api_call( ''chat.postMessage'', channel=''#channelname'', text=''<@userID> This is a test.'' )

SIN EMBARGO, si desea mencionar un grupo de usuarios, entonces el método anterior aún se aplica: solo @mention les y, en ese caso , establezca los link_names de link_names como verdaderos.