Slack 是一个功能强大的团队协作工具,但是想要在 Slack 上实现自定义的功能需要进行开发。而 @hiroqn/slackbot 是一个开源的 npm 包,它可以帮助我们快速地创建一个 Slack 机器人并实现自定义的功能。
安装
我们可以通过 npm 进行安装:
npm install @hiroqn/slackbot
创建 Slack App
在使用 @hiroqn/slackbot 之前,我们需要创建一个 Slack App,并在应用管理器中获取点击「安装 App」后的 URL 中的 token。具体操作如下:
- 创建一个 Slack App,访问 https://api.slack.com/apps 即可。
- 在「Add features and functionality」中选择「Bots」功能并创建一个机器人。
- 在「Install App」中将应用安装到你的 Workspace 中。
- 在「OAuth & Permissions」中将
bot
Scope 添加到你的 App 中,并重新安装 App。
使用
创建一个 SlackBot 实例:
-- -------------------- ---- ------- ----- -------- - ---------------------------- ----- --- - --- ---------- ------ ---------------------------------------- ----- --- ---- --- ----------------- --------- -- - --------------------- ---
这里的 token
是在创建 Slack App 后获取到的,name
是你的机器人显示的名称。
我们可以在 message
事件中接收到所有的 Slack 消息数据。例如下面这个例子,当机器人收到消息「hi」时,它会回复「Hello!」:
bot.on('message', (message) => { if (message.text === 'hi') { bot.postMessage(message.channel, 'Hello!'); } });
功能
@hiroqn/slackbot 提供了以下功能:
发送消息
发送消息到指定的频道:
bot.postMessage(channel, text);
发送附件
发送具备多种格式的内容到指定的频道:
bot.postAttachments(channel, attachments);
例如:
-- -------------------- ---- ------- ------------------------------- - --------- ------------------------ ------ ---------- -------- --------- ---- ---- ------- ----- --- ---------- ------- ------------ ------ -------- ------------ --------------------------- ------------ ------------------------------------ ------ ------ --- --------------- ----------- ------------------------- ----- --------- ---- ---- ------- ------ --- ------------ ---------- ------------------------------------------ ---------- --------------------------------------- ------- ------ ----- ------------ ------------------------------------------------------------------- --- ---------- ---
监听消息
监听指定的消息事件:
bot.on(event, listener);
例如:
bot.on('message', (message) => { console.log(message); });
发送消息到用户频道
向指定用户的频道发送消息:
bot.postEphemeral(channel, text, user, options);
例如:
bot.postEphemeral('CXXXXXX', 'Hey! How are you today?', 'UXXXXXX');
发送消息到多个频道
向多个频道同时发送消息:
bot.postMultiChannels(channels, text);
例如:
bot.postMultiChannels(['#channel1', '#channel2'], "Here's a message for multiple channels!");
监听指定用户的消息
监听指定用户的消息事件:
bot.onDirectMessage(user, listener);
例如:
bot.onDirectMessage('UXXXXXX', (message) => { console.log(message); });
总结
@hiroqn/slackbot 提供了丰富的功能,可以帮助我们快速实现自定义的 Slack 机器人。在实际开发中使用时,要根据具体需求合理使用它提供的各种功能,以实现更好的效果。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066bbb967216659e244104