标签: slack-block-kit

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

背景

我正在尝试使用 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)

我究竟做错了什么?

kotlin slack-api slack-block-kit

17
推荐指数
1
解决办法
2万
查看次数

您可以非交互地使用松弛按钮吗?

在使用 Slack 的块套件构建器时,我创建了一条消息,该消息将发送通知以及供用户单击的链接。我喜欢默认按钮的外观,但每当我单击它时,我都会收到一条警告,提示我的应用程序未配置交互性。

在此输入图像描述

该链接确实有效,但警告图标令人不安。有没有办法在不期望交互性的情况下使用这些按钮?另一种选择似乎是只使用降价链接,但我认为它看起来不太好。

我的区块:

{
    "blocks": [
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": "Hello here's a notification"
            }
        },
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": "<https://google.com|View Conversation>"
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

如果我直接从块套件构建器发送此块,则不会出现警告消息。我猜这是因为它是作为我的用户而不是应用程序发送的。

slack slack-block-kit

12
推荐指数
1
解决办法
2653
查看次数

当用户名/ID 来自变量时,如何在 Workflow Builder 的 slack 消息中提及用户

我正在尝试为我的松弛团队制定一个工作流程,其中我有以下步骤:(使用工作流程构建器)

当用户单击频道中的快捷方式时启动

打开一个表格 - 我们提出很多问题,一个问题有多个修复选项

从 Google 表格中选择行 - 根据答案,我们选择一行

向 slack 通道发送消息 - 使用包含 slack 成员 ID(或用户名)的同一行的另一列中的值来提及消息中的人员

我所期望的:

频道上的松弛消息有 @userHere 作为提及(触发通知)

会发生什么:

该消息以 @userHere 作为计划字符串在通道上发送。不像提到的那样,即不可点击并且不会触发通知。

是否可以?我究竟做错了什么?

我尝试过的:

我在发送消息步骤中输入的内容 工作表中保存的内容
@多变的 “用户名”
@多变的 “U123213”
多变的 “@用户名”
多变的 “@U123213”
{{多变的}} @用户名

还有很多其他的..但我从未被提及。

slack-api slack slack-block-kit

7
推荐指数
1
解决办法
2323
查看次数

将 Slack 机器人菜单颜色条扩展到整个消息(节点、slack 块套件、slack api)

我有一个使用下拉菜单的 Slack 机器人,它的侧面有一个颜色条。请参阅我在绿色圆圈中的屏幕截图

我希望该栏像此图片一样扩展整个消息
注意:此图像经过编辑以显示红色栏的示例(并且因为实际的松弛机器人消息并不重要)

我的代码有类似的东西

    let slackPost = {
        "blocks": [
            {
                "type": "section",
                "text": {
                    "type": "mrkdwn",
                    "text": myText
                }
            } // ... some other blocks
        ],
        "attachments": [
            {
                "text": menuTitle,
                "color": menuBarColor,
                "attachment_type": "default",
                "actions": [
                    {
                        "name": menuName,
                        "text": menuPlaceHolder,
                        "type": "select",
                        "options": menuOptions   
                    }
                ]
            }
        ]
    }
Run Code Online (Sandbox Code Playgroud)

slack-api slack slack-block-kit

6
推荐指数
2
解决办法
7936
查看次数

我们如何在使用 Slack 的 Block Kit Builder 时提及或标记某人?

我尝试创建 Slack 的块套件构建器,所需的设计实际上很好。但我不知道在哪里可以找到一个按钮,以便我们可以在上面标记某人。


我在这里尝试标记一个名为john的人,但不幸的是它只生成了纯文本,它没有通知该人,也没有变成与预期相同的设计(参见下图结果)查看 游乐场

{
    "blocks": [
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": "@juan \n\nis a mrkdwn section block"
            }
        },
        .....
    ]
}
Run Code Online (Sandbox Code Playgroud)

这是结果

在此输入图像描述

slack slack-block-kit

6
推荐指数
1
解决办法
1万
查看次数

如何正确使用“可扩展”类型?

如何正确使用“可扩展”类型?

描述

我有一个每小时运行一次的批处理,并向我们的 slack 发送一些统计数据。每个JSON输出都可能非常大,我正在寻找一种方法来使其可折叠/可扩展。

我正在玩 slack 的BlockKit Builder,希望有类似的东西,并且我发现(在查看消息错误时)有一种名为expandable.

但是,没有关于它的 (?) 文档。我唯一知道的是。

  1. 它需要一个blocks属性
  2. 应该是一个blocks财产的孩子

我试过的

我继续使用块构建器(演示)并且能够让它不抛出任何错误,但没有视觉输出......

{
   "blocks": [
        {
            "type": "expandable",
            "blocks": [
                {
                    "type": "section",
                    "text": {
                        "type": "mrkdwn",
                        "text": "Hello, Assistant to the Regional Manager Dwight! *Michael Scott* wants to know where you'd like to take the Paper Company investors to dinner tonight.\n\n *Please select a restaurant:*"
                    }
                }
            ]
        }
    ] …
Run Code Online (Sandbox Code Playgroud)

json slack-api slack slack-block-kit

5
推荐指数
0
解决办法
1054
查看次数

发送消息时是否可以更改 Slack 机器人的图像和名称

我正在尝试构建一个 Slack 机器人,它将以各种名人的身份发布消息;因此,乍一看,信息将来自于以其形象闻名的人。这不起作用。我设法更改了机器人名称和图像,但发送的消息将发送到 slackbot DM 页面。我把它变成了一个聊天应用程序;但当我更改配置文件时,它显示无效用户。它允许我更改工作区中其他人的用户名,但不能更改机器人的用户名。

function changeProfile() {
  (async () => {
    const result = await web.users.profile.set({
      profile:{real_name: "Jacinda Adern"},
      user:"U0281UY0CSK". //id of bot
    });

  })();
}
Run Code Online (Sandbox Code Playgroud)

slack-api slack slack-block-kit

4
推荐指数
1
解决办法
5650
查看次数

如何使 slack app home 中的复选框默认选中

Slack 让您可以使用块套件构建器轻松构建 UI,包括添加复选框:How do I make all checkboxes select by default on (using JS)? 当用户打开应用程序主页时,是否可以选中 1 个复选框?如果我能做到其中一件事,那么剩下的事情就很容易了。

{
"type": "home",
"blocks": [
    {
    "type": "input",
    "element": {
        "type": "checkboxes",
        "options": [
            {
                "text": {
                    "type": "plain_text",
                    "text": "*this is plain_text text*",
                    "emoji": true
                },
                "value": "value-0"
            },
            {
                "text": {
                    "type": "plain_text",
                    "text": "*this is plain_text text*",
                    "emoji": true
                    },
                  "value": "value-1"
              }
          ],
          "action_id": "checkboxes-action"
      },
      "label": {
          "type": "plain_text",
          "text": "Label",
          "emoji": true
      }
  }
]
}
Run Code Online (Sandbox Code Playgroud)

slack-api slack slack-block-kit

4
推荐指数
1
解决办法
3625
查看次数

Slack API - 如何发送多张图像以便它们显示在图库中

当我使用这样的块通过 api 发送多个图像时:

{
    "blocks": [
        {
            "type": "image",
            "title": {
                "type": "plain_text",
                "text": "Please enjoy this photo of a kitten"
            },
            "image_url": "http://placekitten.com/500/500",
            "alt_text": "An incredibly cute kitten."
        },
        {
            "type": "image",
            "title": {
                "type": "plain_text",
                "text": "Please enjoy this photo of a kitten"
            },
            "image_url": "http://placekitten.com/500/500",
            "alt_text": "An incredibly cute kitten."
        },
        {
            "type": "image",
            "title": {
                "type": "plain_text",
                "text": "Please enjoy this photo of a kitten"
            },
            "image_url": "http://placekitten.com/500/500",
            "alt_text": "An incredibly cute kitten."
        }
    ]
} …
Run Code Online (Sandbox Code Playgroud)

image-gallery slack-api slack-block-kit

3
推荐指数
1
解决办法
570
查看次数

Slack 应用程序在先前的模式提交后打开新模式不一致,为什么?

我创建了一个新的免费 Slack 工作区来学习 Slack 机器人应用程序 API。我有一个动作处理程序,它监听全局快捷方式并打开一个输入模式作为响应。还有另一个操作处理程序,它侦听模态输入 Submit callback_id,执行一些工作,然后使用trigger_id打开另一个模态。

app.view('do_thing_b.submit', async (slack) => {

  try {
    await slack.ack()
    console.info(`Received modal submit`)

    // TODO: actual work to save the data

    const view = {
      type: 'modal',
      callback_id: 'do_thing_b.received_submission',
      title: {
        text: 'Thing B Done',
        type: 'plain_text',
      },
      blocks: [
        {
          type: 'section',
          text: {
            text: 'My Plain Text',
            type: 'plain_text',
            emoji: true,
          },
        },
      ],
      close: {
        text: 'Close',
        type: 'plain_text'
      }
    }

    const openViewParams = {
      trigger_id: slack.body.trigger_id, …
Run Code Online (Sandbox Code Playgroud)

modal-dialog view submit slack-api slack-block-kit

2
推荐指数
1
解决办法
2175
查看次数

Slack Bolt Python:如何使模式中的输入字段可选?

我正在使用模态来收集数据。我通过以下代码打开了一个视图:

view = {
    "type": "modal",
    "title": {
        "type": "plain_text",
        "text": "My App",
        "emoji": True
    },
    "submit": {
        "type": "plain_text",
        "text": "Submit",
        "emoji": True
    },
    "close": {
        "type": "plain_text",
        "text": "Cancel",
        "emoji": True
    },
    "blocks": [
        {
            "type": "input",
            "element": {
                "type": "plain_text_input",
                "action_id": "plain_text_input-action"
            },
            "label": {
                "type": "plain_text",
                "text": "Please leave feedback here",
                "emoji": True
            }
        }
    ]
    }
slack_client.views_open(trigger_id=body['trigger_id'],view=view)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想让输入文本可选,也就是说,即使用户将输入字段留空,他/她仍然可以提交模式。这能实现吗?

slack-api slack slack-block-kit

2
推荐指数
1
解决办法
1294
查看次数

如何在 Slack Block Kit mrkdwn (markdown) 块中创建超链接?

如何在 Slack Block Kit 中的 Slack Markdown 块中建立链接?

我已经尝试过我习惯使用的降价方法:

This is a [link](https://www.stackoverflow.com)
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。

slack-block-kit

1
推荐指数
1
解决办法
7789
查看次数