这可能是一个简单的问题,但我无法让它发挥作用。
我正在使用Slack Python Api在频道中提及用户,我在这里指的是文档https://api.slack.com/methods/chat.postMessage,我的代码很简单,
from slackclient import SlackClient
sc = SlackClient(token)
message = sc.api_call(
'chat.postMessage',
channel='#channelname',
text='This is a test.'
)
这会向频道发送消息,但我找不到任何提及用户的选项。我试图将@someone
放在消息中,例如
text='@someone This is a test.'
邮件将以纯文本形式发布,但确实提到某人。 顺便说一句,我正在使用测试令牌。(或者这个功能可能只适用于授权令牌?)
有没有选择或方法可以做到这一点?
提前谢谢。
答案 0 :(得分:27)
经过一番探索,我得到的解决方案非常简单。我不知道怎么会错过它。
message = sc.api_call(
'chat.postMessage',
link_names=1,
channel='#channelname',
text='@someone This is a test.'
)
使用选项link_names=1
在短信中自动链接频道或用户名。这样就可以了。
谢谢大家。
答案 1 :(得分:10)
发布更新的答案,因为此方法不再有效,因为Slack更新了他们的API。现在,您必须使用users.list
发现用户的ID,或者只是在他们的个人资料中的Slack应用中查找。
然后,对于给定的 userID ,您可以通过如下设置文本来提及它们:< @ userID >。 link_names
参数现在无关紧要。所以这将是现在使用的代码:
message = sc.api_call(
'chat.postMessage',
channel='#channelname',
text='<@userID> This is a test.'
)
但是,如果你想提一个用户组,那么旧的方法仍然适用 - 只需@mention它们,在这种情况下做将link_names
设置为true。