- Create a
.envfile. This file will hold environment variables. - Copy and paste the contents of
.env.distinto the.envfile. - Run
npm installto install project's dependencies. - Run the project:
npm run start:dev to run the project in development mode (socket-mode).
npm run start:prod to run the project in production mode (http-mode).
In the slack's app page go to the OAuth & Permissions to manage the scopes, you will need to add the following scopes:
channel:historychannels:readchat:writecommandsgroup:historyim:historyim:writereactions:writempin:historyusers:readusers:read.email
In the Event subscription tab subscribe to the following events:
app_home_openedmessage.channelsmessage.groupsmessage.immessage.mpimreaction_addedteam_join
You also have to add the "tarea" command
Command: /tarea
Request URL: https://{your_slack_bot_domain}/slack/events (no need in socket-mode)
Short description: "Sube tarea a r-argentina"
The slack bolt documentation recommends using socket-mode for development since you don't have to give it a URL, but you do have to add an APP_TOKEN
You can generate one here: Basic information => App-Level Tokens => Generate Token and Scopes
Scopes:
connections:write
Activate socket-mode: Socket mode => Connect using Socket Mode => Enable Socket Mode
The Slack bolt documentation recommends running Http-mode when hosting apps:
HTTP is more useful for apps being deployed to hosting environments (like AWS or Heroku), or apps intended for distribution via the Slack App Directory.
Event Subscriptions
You have to set an URL in as follows:
https://{your_slack_bot_domain}/slack/events
You can run tests using npm run test, npm run test:coverage to check the code coverage and npm run test:dev for testing during development.
These are the required environment variables for the project to run:
| Variable | Description |
|---|---|
| SLACK_SIGNING_SECRET | Signing secret provided by the slack's app basic information page. |
| SLACK_BOT_TOKEN | Bot's token provided by the slack´s OAuth & Permission page. |
| APP_TOKEN | App level token generated in the slack's app basic information page. |
| SLACK_TEAM_ID | ID of slack team. |
| API_URL | Backend's URL. |
| BOT_ID | Bots's ID. |
| BOT_AUTHORIZATION_BEARER_TOKEN | Bearer token for the backend´s guards. |
| HTTP_PORT | Port where the bot runs. |
| AUTH0_CLIENT_ID | Auth0 client ID. |
| AUTH0_CLIENT_SECRET | Auth0 client secret. |
| AUTH0_AUDIENCE | Auth0 audience. |
| GRANT_TYPE | Grant type. |
| AUTH0_USERNAME | Auth0 username. |
| AUTH0_PASSWORD | Auth0 pasword. |
| AUTH0_DOMAIN | Auth0 domain. |