提问者:小点点

如何在松弛客户端中提及用户


这可能是一个简单的问题,但我无法解决。

我使用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.'

该消息将被发布,但以纯文本形式发布,而不是真正提及某人。顺便说一句,我正在使用测试令牌。(或者也许此功能仅适用于授权令牌?

有什么选择或方法可以做到这一点吗?


共2个答案

匿名用户

发布一个更新的答案,因为自从Slack更新了他们的API,这个方法就不再有效了。现在,您必须使用< code>users.list来发现用户的ID,或者只是在Slack应用程序的个人资料中查找。

然后,对于给定的用户 ID,您可以通过按如下方式设置文本来提及它们:

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

但是,如果您想提及用户组,则旧方法仍然适用 - 只需@mention它们,在这种情况下,请将link_names设置为true。

匿名用户

经过一点点的探索,我得到了非常简单的解决方案。我不知道我怎么会错过。

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

使用选项linknames=1在文本消息中自动链接频道或用户名。这就行了。

谢谢大家。