这可能是一个简单的问题,但我无法解决。
我使用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.'
该消息将被发布,但以纯文本形式发布,而不是真正提及某人。顺便说一句,我正在使用测试令牌。(或者也许此功能仅适用于授权令牌?
有什么选择或方法可以做到这一点吗?
发布一个更新的答案,因为自从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
在文本消息中自动链接频道或用户名。这就行了。
谢谢大家。