在现代前端技术中,Slack 成为了最流行的企业协作工具,为了将你的应用程序集成到 Slack,你需要学习如何使用 Slack 的 webhook API。 在本文中,我们将介绍如何使用 npm 包 @slack/webhook 来将消息从你的应用程序发送到 Slack 频道。
Slack webhook
Slack webhook 是一种 API,它允许应用程序将消息发布到 Slack 频道中。您需要在 Slack 中创建一个 incoming webhook,使用 webhook URL 来发布消息。
添加 Incoming Webhook
- 进入 Slack 工作区,选择
Settings & Administration
, 再选择Manage apps
. - 点击
Custom Integrations
. - 找到 Incoming WebHooks,选择 Add configuration.
- 确定要将 WebHook 添加到那个频道中,单击
Add Incoming WebHooks integration
. - 在 web 钩子设置页面中,单击
Copy Webhook URL
以复制 Webhook URL。
安装 @slack/webhook
使用 npm 包管理工具安装 @slack/webhook
npm install @slack/webhook --save
发送消息到 Slack
引入 @slack/webhook之后,通过 Incoming Webhook的 URL、用来发送的数据构成的 Payload format和其他一些可配置的属性,我们可以轻松地将消息发送到一个 Slack 频道。
-- -------------------- ---- ------- ----- --------------- - ------------------------------------------ ----- --- - ----------------------------------------------------------------- ----- ------- - --- --------------------- -------------- ----- ------ ------- -- -------------------------- ------ --------------- ----------------------
运行上述代码,我们可以看到,一条消息成功发送到 Slack 频道中。
通过上述代码,我们还可以了解到,@slack/webhook 提供构造函数 IncomingWebhook(url: string, options?: IncomingWebhookSendArguments)
,你可以通过 options 属性变更传输数据的格式和其他属性。
-- -------------------- ---- ------- --- ----- ------- - --- -------------------- - --------- --------- --------- ------------------------------- -------- ------ --- -------------- ----- ------------- ------------ - - ------ ---------- -------- ------------ ------------ ----- ----- ------------ ---------------------------------------- ------ --------- ----- ------ -- - --------- -------------------- -------- ----------- ------ ------------ ----- ------ - - --- --- ------------- ---- -------------------------------------------------------------------------------------- -- -- ------- -------- ------- - ---- -------------- -------------- ---------------------------- - ------------------------------------------------------------ -------- ------------------------------------------------------------------------------------