1

我创建了一个机器人,它应该通知组中的用户他们被分配到的任务。它适用于简单的消息,但一旦放入卡片消息就无法正常工作 - 我得到“---”或“???” 而不是提及。我试图把它放在不同的小部件中:keyValue、textParagrap 或标题,但它不会改变任何东西。有谁知道这是否可能?

4

2 回答 2

5

您可以将简单消息与卡片组合在一个帖子中以实现此目的。

例如,以下 JSON 将@all在卡片上方的文本中显示一条消息。如果您知道用户 ID,则可以更改<users/all>以通知特定用户。

{
  "cards": [
    {
      "sections": [
        {
          "widgets": [
            {
              "keyValue": {
                "content": "<pre>ls -l</pre>",
                "contentMultiline": "true",
                "icon": "DESCRIPTION",
                "topLabel": "Executed Job"
              }
            },
            {
              "keyValue": {
                "content": "<pre><font color=\"#006400\">passed</font></pre>",
                "contentMultiline": "true",
                "icon": "BOOKMARK",
                "topLabel": "Status"
              }
            },
            {
              "keyValue": {
                "content": "<pre>5 milliseconds</pre>",
                "contentMultiline": "true",
                "icon": "CLOCK",
                "topLabel": "Elapsed"
              }
            }
          ]
        }
      ]
    }
  ],
  "text": "<users/all> : Job `ls -l` *passed*"
}
于 2019-07-30T19:02:04.017 回答
0

对 API 描述的审查应该已经证实了你的怀疑——此时,你不能通过 Card 消息提及用户,只能通过简单的消息。

卡文本格式

在卡片内部,大多数文本字段通过一小部分 HTML 标记支持基本文本格式。

请注意,基本消息的文本正文是使用不同的标记语法解析的

关于简单消息的消息格式的 API 参考页面明确指出了如何在简单消息中提及用户 ( 1 , 2 )

spaces.messages查看and的 API 描述时会出现另一个提示:与 include关联cards的元数据。 如果查看 a 的规范,则不会观察到这样的规范。文本小部件的描述仅包含格式化文本。MessageAnnotationsUserMentionMetadata
Card

因此,如果您需要通知特定用户卡片的内容,您应该将卡片直接发送给用户,或者在卡片发送之前或之后立即在简单的消息中提及用户。

于 2019-03-21T13:17:32.890 回答