发布于 2026-01-06 0 阅读
0

通过 NodeJS 发送 Slack 通知

通过 NodeJS 发送 Slack 通知

Slack一直是项目开发人员、经理和创始人使用的领先的项目管理工具。

在项目开发过程中,建立一套通用的通知系统非常有用,原因有很多:

  • 希望在新用户注册时收到通知🚀
  • 希望用户在尝试完成操作时遇到错误时能够收到提醒😑
  • 用户在应用内购买、订阅等项目付款时,我们希望收到提醒。💸

有了这些通知,就能让团队成员及时了解情况,确保每个人都步调一致!


我们先来设置“Slack 应用”

前往Slack API 页面,然后点击“创建新应用”按钮。

创建 Slack 应用

选择“从头开始”,为您的应用程序命名,然后选择所需的工作区。

在“基本信息”部分的“添加功能”部分,点击“权限”选项卡,您将被重定向到“OAuth 和权限”页面,在该页面下滚动到“范围”部分,然后选择下图所示的权限:

Slack频道应用权限

添加这些权限后,向上滚动以获取 OAuth 令牌,该令牌稍后将在应用程序中用于发送通知。

注意:OAuth 令牌会在应用安装到您的工作区(即您创建应用时选择的工作区)后提供。

使用 OAuth 令牌安装 Slack 应用

点击“安装到工作区”按钮,您将看到以下页面,请允许安装。

将 Slack 应用安装到工作区

允许应用安装后,您将被重定向回同一页面,此时将显示 OAuth 令牌。

Slack 应用的令牌

复制 OAuth 令牌,接下来我们将获取频道 ID。在 Slack 中,打开频道并点击频道名称,您将看到如下所示的弹出窗口。

Slack频道ID


现在让我们来设置Node应用程序……

创建一个 node 应用或使用现有的应用并运行,npm i @slack/web-api以安装适用于 nodejs 的 slack 客户端。

require('dotenv').config()
const { sendSlackMessage } = require('./utils/slack.util');
console.log('🚀 Slack Notifier 🚀');
const sendMessage = async(message) => {
await sendSlackMessage(message);
}
sendMessage('This is generated by Notifier Test App')
view raw app.js hosted with ❤ by GitHub

在 utils 文件夹下创建一个名为 . 的文件slack.util.js。然后,在该文件中
定义SLACK_TOKEN&& SLACK_CHANNEL_ID.env

现在运行代码,如果在运行过​​程中看到以下错误,那是因为我们还需要让应用程序也加入频道。

Slack 客户端报错:不在频道内

所以,要让用户加入频道,请查看下面的代码片段:



const resp = await web.conversations.join({
    channel: channel,
});
if (message) {
    await sendSlackMessage(message, channel);
}


Enter fullscreen mode Exit fullscreen mode

使用上述代码后,让我们触发通知,瞧!

Slack 通知已触发

完整的代码可在此处查看

此外,您还可以创建一个 API 来从 Slack 获取活跃频道,然后直接在您的应用程序中实现频道动态选择。如有任何疑问,请随时联系我。

谢谢!

文章来源:https://dev.to/hrishikeshps/send-slack-notifications-via-nodejs-3ddn