这可能是一个简单的问题,但我不能让它发挥作用.
我正在使用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.'
)
Run Code Online (Sandbox Code Playgroud)
这将向频道发送消息,但我找不到任何提及用户的选项.我试着把@someone信息放在里面
text='@someone This is a test.'
Run Code Online (Sandbox Code Playgroud)
该消息将以纯文本形式发布,但确实提到了某人.顺便说一下,我正在使用测试令牌.(或者这个功能可能仅适用于授权令牌?)
有没有选项或方法来做到这一点?
先感谢您.
Hai*_*gSu 34
经过一番探索,我得到的解决方案非常简单.我不知道怎么会错过它.
message = sc.api_call(
'chat.postMessage',
link_names=1,
channel='#channelname',
text='@someone This is a test.'
)
Run Code Online (Sandbox Code Playgroud)
使用该选项link_names=1在短信中自动链接频道或用户名.这样就可以了.
谢谢大家.
Tom*_*aff 16
发布更新的答案,因为此方法不再有效,因为Slack更新了他们的API.现在,您必须使用users.list或仅在其配置文件中的Slack应用程序中查找用户的ID .
然后,对于给定的userID,您可以通过设置文本来提及它们:<@ userID >.这个link_names论点现在无关紧要.所以这将是现在使用的代码:
message = sc.api_call(
'chat.postMessage',
channel='#channelname',
text='<@userID> This is a test.'
)
Run Code Online (Sandbox Code Playgroud)
但是,如果你想提一个用户组,那么旧的方法仍然适用-只是@mention他们,在这种情况下,就设置link_names为true.