2 个不稳定版本
0.1.0 | 2019 年 12 月 13 日 |
---|---|
0.0.1 | 2019 年 12 月 13 日 |
13 在 #kit
33 每月下载量
78KB
2.5K SLoC
block_kit
简单的 Slack API 包装器,用于 Slack 命令和交互式组件的 Block Kit 和 Payloads。使用 serde 实现
其他示例
基本
1. 加载环境变量
// export SLACK_BOT_TOKEN=xoxb-your-bot-token
// export SLACK_CHANNEL=random
let config = match from_env::<SlackConfig>() {
Ok(val) => val,
Err(err) => {
error!("{}", err);
process::exit(1);
}
};
2. 设置 block payload
let section = SectionBlock::new(Markdown("@here *Hello World*, `section1`".into()));
let common_payload = CommonMessagePayload::new().blocks(vec![section.into()]);
let payload = ChatPostMessagePayload::new(&config.channel, common_payload);
3. POST.
使用 reqwest 的示例
let res: PostMessageResponse = reqwest::Client::new()
.post(CHAT_POST_MESSAGE_URL)
.header("Authorization", format!("Bearer {}", config.bot_token))
.json(&payload)
.send()
.await
.unwrap()
.json()
.await
.unwrap();
Block Kit
-
Block Kit 是 Slack 应用程序的 UI 框架,在构建消息和其他表面的体验时提供平衡的控制和灵活性。
-
通过组合、更新、排序和堆叠块(几乎在 Slack 的任何地方都可以使用的可重复使用的组件),可以自定义信息和外观的顺序,并指导用户了解应用程序的功能。
摘自 官方文档
结构概述
应用程序表面 是应用程序可以通过通信或交互表达自己的任何地方。它可能包含一些 块。
块 是一个视觉组件。块可以堆叠和排列以创建布局。在任一表面上的基本 Block Kit 建立体验是相同的。
块可能包含一些 块元素 和一些 组合对象。它可以拥有的元素数量取决于块的类型。例如,
[块元素]
- 部分:最多 1 个。
- 分隔符:不能有。
- 操作:最多 5 个。
[组合对象]
- 部分:一些
text
和fields
中的 文本。 - 分隔符:不能有。
块元素 是一个较小的视觉组件。元素可以在 section
、context
、actioons
块中使用。它们构成 块 的一部分。元素可能包含一些 组合对象。
组合对象 也是一个视觉组件,但比 块元素 小。它可以在块和块元素中使用。并且,它可能包含一些 组合对象。
例如,
- 确认对话框:一些 文本 对象。
- 选项:1 个 文本 对象。
- 选项组:1 个 文本 对象和一些最多 100 个 选项 对象。
一些句子参考了 官方文档
支持的表面
- 消息
- 主页标签页
- 模式
视图有效负载、主页标签页
和 模式
尚未支持,但很快就会。
支持的块
- 部分
- 上下文
- 操作
- 分隔符
- 图像
- 文件
- 输入
支持的块元素
- 按钮
- 日期选择器
- 图像
- 多选菜单
- 溢出菜单
- 纯文本输入
- 单选按钮组
- 选择菜单
支持的合成对象
- 文本
- 确认对话框
- 选项
- 选项组
静态链接
如rust-musl-builder中所述。
alias rust-musl-builder='docker run --rm -it -v "$(pwd)":/home/rust/src ekidd/rust-musl-builder'
rust-musl-builder cargo build --example interactive_server --release
依赖
~0.4–1MB
~23K SLoC