How to mention user in slack.client

Haipeng Su picture Haipeng Su · Nov 23, 2016 · Viewed 21.3k times · Source

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, but 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?
Thank you in advance.

Answer

Haipeng Su picture Haipeng Su · Nov 23, 2016

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.