Search code examples
pythonslackslack-api

How to mention user in slack.client


This might be a simple question, but I can not get it work.

I am using Slack Python Api to mention a user in a channel, and I am referring to the document here, https://api.slack.com/methods/chat.postMessage, and my code is simple as,

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

This will send a message to the channel, but I can not find any option to mention users. And I tried to put @someone inside the message such as

 text='@someone This is a test.'

The message will be posted but in plain text, not really mentioning someone. BTW, I am using a Test Token.(Or maybe this feature is only available for authorized token? )

Is there any option or method to do this?


Solution

  • After a little bit exploration, I got the solution which is quite simple. I don't know how I could miss it.

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

    use the option link_names=1 to link channels or user names automatically in the text message. This will do the trick.

    Thank you everyone.