【发布时间】:2015-09-06 03:27:33
【问题描述】:
我为 slack 构建了一个机器人。当有新用户加入时,它会读取消息,我打算让它发布一条欢迎他们的消息:“欢迎 @user!你正在构建什么!?”
当它发布@user 时,实际的“标签”似乎不起作用。当我使用机器人而不是仅使用 @user 标记人员时,是否需要标记他们的用户 ID?
【问题讨论】:
-
我认为在 Slack-uage 中这个东西叫做“提及”
我为 slack 构建了一个机器人。当有新用户加入时,它会读取消息,我打算让它发布一条欢迎他们的消息:“欢迎 @user!你正在构建什么!?”
当它发布@user 时,实际的“标签”似乎不起作用。当我使用机器人而不是仅使用 @user 标记人员时,是否需要标记他们的用户 ID?
【问题讨论】:
正确的格式是
您只需从事件中获取用户 ID(在您的屏幕截图中,channel_join event)
{
"type": "message",
"subtype": "channel_join",
"ts": "1358877458.000011",
"user": "U2147483828",
"text": "<@U2147483828|cal> has joined the channel"
}
更新: (我没有检查编辑中提出的解决方案)
在新的Bolt SDK 中,您可以使用@NameOfUser 周围的括号来标记用户。所以上面的例子也可以是:
{
"type": "message",
"subtype": "channel_join",
"ts": "1358877458.000011",
"user": "U214####",
"text": "<@NameOfUser> has joined the channel"
}
您当然需要从消息中解析出@Name。
【讨论】:
您可以尝试在参数中添加 "parse"="full" 和 "link_names"=1 吗? 如需快速测试,您可以使用他们的测试仪chat.postMessage
【讨论】: