首页 > 解决方案 > 通过 Slack Outgoing Webhooks 发送的消息中的 URI 用角括号括起来

问题描述

我通过 Slack Outgoing Webhook 在 Slack 和我的自定义应用程序之间进行了集成。最近,我发现如果 Slack 消息包含一个 URI(并且这个 URI 在 Slack 中被识别为 URI),那么发送到我的 webhook 的 JSON 的这个链接会被角括号('<' 和 '>')包围。

所以,现在,我有两个问题:

  1. 这是预期的行为还是错误?
  2. 有没有办法禁用它?

不幸的是,官方的 Slack 文档并不是很有帮助。

标签: slackslack-api

解决方案


这是预期的行为。我认为没有办法禁用它。

您在上面提到的行为发生在 Slack 消息中包含一些格式化文本时。不仅对于 URI,对于其他字符串,如频道、用户名、组,您也会遇到这些括号。您需要编写代码来解析这些字符串。

好消息是这些是定义良好的字符串,并且它们总是遵循特殊的结构。您可以在此处查阅 Slack 文档,以了解更多信息。

  1. 检测所有匹配的子字符串<(.*?)>
  2. 在这些子字符串中,格式内容#C以频道链接开头
  3. @U以用户提及或@W作为用户提及的形式格式化内容
  4. !subteam以用户组提及开头的格式内容
  5. !以特别提及规则开头的格式内容
  6. 对于这些子字符串中的任何其他内容,格式为 URL 链接
  7. 确定格式后,检查管道 ( |) - 如果存在,使用管道后面的文本作为链接或提及的标签。

推荐阅读