【问题标题】:How do you tag people with a slack bot?您如何使用 Slack 机器人标记人?
【发布时间】:2015-09-06 03:27:33
【问题描述】:

我为 slack 构建了一个机器人。当有新用户加入时,它会读取消息,我打算让它发布一条欢迎他们的消息:“欢迎 @user!你正在构建什么!?”

当它发布@user 时,实际的“标签”似乎不起作用。当我使用机器人而不是仅使用 @user 标记人员时,是否需要标记他们的用户 ID?

【问题讨论】:

  • 我认为在 Slack-uage 中这个东西叫做“提及”

标签: slack-api slack


【解决方案1】:

正确的格式是

您只需从事件中获取用户 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

【讨论】:

  • 您可以通过转到配置文件并选择 EditProfile 旁边的 3 个点来获取用户 ID
【解决方案2】:

您可以尝试在参数中添加 "parse"="full" 和 "link_names"=1 吗? 如需快速测试,您可以使用他们的测试仪chat.postMessage

【讨论】:

  • 使用您推荐的测试仪时,即使没有“link_names=1”,它也会标记用户。当我使用 "parse"="full" 时,它没有标记用户并留下 ID。这让我相信这与我正在使用的 node wrapper 有关。
猜你喜欢
  • 2016-03-02
  • 2018-11-07
  • 2021-06-15
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 2016-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多