如何使用 slack api 发布项目符号列表

Arn*_*tta 17 kotlin slack-api slack-block-kit

背景

我正在尝试使用 slack Bolt jdk 以及以下依赖项:

  // Slack bolt SDK
  implementation("com.slack.api:bolt:1.8.1")
  implementation("com.slack.api:bolt-servlet:1.8.1")
  implementation("com.slack.api:bolt-jetty:1.8.1")
  implementation("com.slack.api:slack-api-model-kotlin-extension:1.8.1")
  implementation("com.slack.api:slack-api-client-kotlin-extension:1.8.1")
Run Code Online (Sandbox Code Playgroud)

我想要实现什么(在松弛状态下)

在此输入图像描述

我目前得到的(闲置的)

在此输入图像描述

到目前为止我尝试过的

fun SlashCommandContext.sendSectionAndAck(
  message: String,
): Response {
  slack.methods(botToken).chatPostMessage { req ->
    req
      .channel(channelId)
      .blocks {
        section {
          markdownText(message)
        }
      }
  }
  return ack()
}
Run Code Online (Sandbox Code Playgroud)

看起来 Markdown 的格式几乎正确。页眉和页脚均按预期加粗,但由于某种原因,项目符号列表的格式不正确。我也尝试过用 替换 ,*-没有任何运气。

就我而言,我可以使用以下输入调用该函数:

val input = """
*Some header text in bold*
- item
- another item
*Some footer text also in bold*
"""
sendSectionAndAck(input)

Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

小智 22

最简单的解决方法是在文本中使用'\xe2\x80\xa2\'字符本身。

\n

Slack 还使用以下内容作为块工具包消息的一部分来反映要点:

\n
"text": "\xe2\x80\xa2 test",\n\n"blocks": [\n    {\n      "type": "rich_text",\n      "block_id": "erY",\n      "elements": [\n        {\n          "type": "rich_text_list",\n          "elements": [\n            {\n              "type": "rich_text_section",\n              "elements": [\n                {\n                  "type": "text",\n                  "text": "test"\n                }\n              ]\n            }\n          ],\n          "style": "bullet",\n          "indent": 0\n        }\n      ]\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

另一个参考:\n
https://superuser.com/questions/1282510/how-do-i-make-a-bullet-point-in-a-slack-message

\n

  • 啊,发现了这个:https://api.slack.com/changelog/2019-09-what-they-see-is-what-you-get-and-more-and-less (2认同)