Как упомянуть пользователя в slack.клиент
Это может быть простой вопрос, но я не могу получить его работы.
Я использую 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 ответов
после небольшого исследования, я получил решение, которое довольно просто. Не знаю, как я мог это пропустить.
message = sc.api_call(
'chat.postMessage',
link_names=1,
channel='#channelname',
text='@someone This is a test.'
)
использовать параметр link_names=1
автоматически связывать каналы или имена пользователей в текстовом сообщении. Это поможет.
спасибо всем.
публикация обновленного ответа, поскольку этот метод больше не работает, так как Slack обновил свой API. Теперь вы должны обнаружить ID пользователя, используя users.list
, или просто ищет его в приложении Slack в своем профиле.
тогда для данного userID, вы упоминаете их, устанавливая текст следующим образом:userID>. The link_names
аргумент теперь не имеет значения. Таким образом, это будет код для использования сейчас:
message = sc.api_call(
'chat.postMessage',
channel='#channelname',
text='<@userID> This is a test.'
)
однако, если вы хотите упомянуть в группу, тогда старый метод все еще применяется-просто @ упомяните их и в этом случае do set link_names
в true.