我为松弛构建了一个机器人。当有新用户加入时,它会读取消息,我打算让它发布一条欢迎他们的消息:“欢迎@用户!你在建造什么!?”
当它发布@user 时,实际的“标签”似乎并没有起作用。当我使用机器人而不是仅使用 @user 标记人时,是否需要标记他们的用户ID?
正确的格式是 <@userID>
您只需从事件中获取用户 ID(在您的屏幕截图中为channel_join 事件)
{
"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