arouze / slack-message-builder
Slack消息构建器,让您轻松构建复杂消息。
v1.0.1
2024-03-05 14:42 UTC
Requires
- php: >=8.2.0
- symfony/http-client: ^7.0
Requires (Dev)
- fakerphp/faker: ^1.23
- phpunit/phpunit: ^11.0
- squizlabs/php_codesniffer: ^3.8
README
用PHP编写的Slack消息构建器。
目标
使用块套件构建Slack消息相当困难。此包将帮助您轻松构建消息,并在您不遵守Slack限制(消息太大,动作块中元素过多)时警告您。
安装
composer require arouze/slack-message-builder
使用
// Here an example with the first template of Slack Documentation // @see: https://api.slack.com/tools/block-kit-builder?template=1 // Will return an array of Slack blocks // You can post them on the Slack webhook using json_encode $blocks = (new SlackMessageBuilder()) ->addBlock( (new SectionBlock()) ->setTextObject( (new TextObject()) ->setType(TextObject::TEXT_OBJECT_TYPE_MARKDOWN) ->setText("You have a new request:\n*<fakeLink.toEmployeeProfile.com|Fred Enriquez - New device request>*") ) ) ->addBlock( (new SectionBlock()) ->addFields( (new TextObject()) ->setType(TextObject::TEXT_OBJECT_TYPE_MARKDOWN) ->setText("Type:*\nComputer (laptop)") ) ->addFields( (new TextObject()) ->setType(TextObject::TEXT_OBJECT_TYPE_MARKDOWN) ->setText("*When:*\nSubmitted Aut 10") ) ->addFields( (new TextObject()) ->setType(TextObject::TEXT_OBJECT_TYPE_MARKDOWN) ->setText("*Last Update:*\nMar 10, 2015 (3 years, 5 months)") ) ->addFields( (new TextObject()) ->setType(TextObject::TEXT_OBJECT_TYPE_MARKDOWN) ->setText("*Reason:*\nAll vowel keys aren't working.") ) ->addFields( (new TextObject()) ->setType(TextObject::TEXT_OBJECT_TYPE_MARKDOWN) ->setText("*Specs:*\n\"Cheetah Pro 15\" - Fast, really fast\"") ) ) ->addBlock( (new ActionBlock()) ->addElement( (new ButtonElement()) ->setText( (new TextObject()) ->escapeEmoji() ->setText('Approve') ) ->setStyle(ButtonElement::BUTTON_STYLE_PRIMARY) ->setValue('click_me_123') ) ->addElement( (new ButtonElement()) ->setText( (new TextObject()) ->escapeEmoji() ->setText('Deny') ) ->setStyle(ButtonElement::BUTTON_STYLE_DANGER) ->setValue('click_me_123') ) ) ->render(); // Or you can use the Sender to easily send message in your Slack channels. // @see https://api.slack.com/messaging/webhooks to configure a webhook on your Slack instance. (new Sender())->sendToChannel( 'channel-name', 'SERVICE_ID', 'CHANNEL_ID', 'CHANNEL_TOKEN', $blocks );
功能
块
- 动作
- 上下文
- 分隔符
- 文件
- 标题
- 图片
- 输入
- 富文本
- 部分
- 视频
元素
- 按钮
- 复选框
- 日期选择器
- 日期时间选择器
- 电子邮件输入
- 文件输入
- 图片
- 多选菜单
- 数字输入
- 溢出菜单
- 纯文本输入
- 单选按钮
- 富文本输入
- 选择菜单
- 时间选择器
- URL输入
- 工作流程按钮
富文本元素
- RichTextSection
- RichTextList
- RichTextPreformatted
- RichTextQuote
组合对象
- 确认对话框对象
- 对话过滤器对象
- 派发动作配置对象
- 选项对象
- 选项组对象
- 文本对象
- 触发对象
- 工作流程对象
- Slack文件对象
富文本对象类型
- 频道
- 表情
- 链接
- 文本
- 用户
- 用户组