1. Setting Up Your Development Environment
Before you begin, make sure you have Node.js and npm installed. If not, go to the Node.js website, download and install the package for your operating system.
Decide where you want to work on this project in your file system and open your terminal to that location.
1. Setting Up Your Bot on Slack
You’ll need to set up a new bot user on Slack:
- Go to the Slack API website.
- Click on “Your Apps” in the upper right.
- Click on “Create New App”.
- Give your app a name and assign it to your workspace then click on “Create App”.
- In the sidebar, under “Add features and functionality”, click on “Bots”.
- Click on “Review Scopes to Add”.
- In “Bot Token Scopes”, click on “Add an OAuth Scope”.
- Add the necessary scopes (for example: `app_mentions:read`, `channels:read`, `channels:write`, `chat:write`, `commands` and `users:read`).
- On top of the page, click “Install to Workspace”.
- Slack will ask you for authorization, click on “Allow”.
- You will be redirected to the app page with “Bot User OAuth Access Token”, keep this token, it will be necessary later.
1. Building Your Bot Locally
Back in your terminal, set up a new Node.js project by creating a new folder and running `npm init`. You can accept all the defaults for now.
Then, you will need to install the `@slack/bolt` package which is a framework that makes building Slack apps in Node.js easy. Install it using the command `npm install @slack/bolt`.
1. Creating Your Bot
In your project directory, create a new file called `bot.js`. This file will contain all of the logic for your bot.
Here’s a simple bot that listens for the command “/hello”, and responds with a message:
```
const { App } = require(‘@slack/bolt’);
const app = new App({
token: ‘xoxb-your-token-from-step-2’,
signingSecret: ‘your-signing-secret‘
});
app.command(‘/hello’, async ({ command, ack, say }) => { // Acknowledge command request await ack();
await say(`Hello, <@${command.user}>`); });(async () => { // Start your app await app.start(process.env.PORT || 3000);
console.log(‘⚡️ Bolt app is running!’); })(); ```This example assumes that you have a secret environment variable, SLACK_SIGNING_SECRET, used to authenticate requests from Slack. Include it in your .env file.
1. Deploying Your Bot
Now that your bot works locally, the next step is to deploy it to a server so that it can interact with your Slack workspace. There are many services you can use to host your bot (like Heroku, AWS, Glitch).
Don’t forget to add your bot to the channel you want to use it in and then just type “/hello” and the bot should reply with a hello message.
That’s it! You’ve just created a bot for Slack using Node.js. You can continue to elaborate on this basic skeleton by adding more commands and logic to your bot.