Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/seratch/bolt-starter
A Bolt ⚡️ app template with useful settings for easier development
https://github.com/seratch/bolt-starter
bolt javascript js slack slack-api slack-app
Last synced: 13 days ago
JSON representation
A Bolt ⚡️ app template with useful settings for easier development
- Host: GitHub
- URL: https://github.com/seratch/bolt-starter
- Owner: seratch
- License: mit
- Created: 2019-12-03T12:58:54.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-19T23:24:37.000Z (3 months ago)
- Last Synced: 2025-01-03T11:08:13.042Z (20 days ago)
- Topics: bolt, javascript, js, slack, slack-api, slack-app
- Language: JavaScript
- Homepage:
- Size: 5.83 MB
- Stars: 54
- Watchers: 3
- Forks: 11
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Getting started with Bolt ⚡️
This is a simple [Slack's Bolt⚡️](https://slack.dev/bolt/) app template. This README covers the following ways to start building your awesome Slack apps.
* [CodeSandbox](https://codesandbox.io/): Step 1 -> Step 2A
* [Glitch](https://glitch.com/): Step 1 -> Step 2B
* On your local machine (Linux/macOS/Windows): Step 1 -> Step 2C---
## (Step 1) Slack App Initial Setup
### Create a Slack App
Start with creating a new Slack app from https://api.slack.com/apps
### Configure Bot Scopes
Access **Features > OAuth & Permissions** from the left sidebar and set the followings.
`https://api.slack.com/apps/{APP_ID}/oauth`
* `app_mentions:read`
* `chat:write`
* `commands`### Install the app to your workspace
Access **Settings > Install App** from the left sidebar. You'll configure more later but let's install the app anyway to get a bot token (`xoxb-***`).
`https://api.slack.com/apps/{APP_ID}/install-on-team`
---
## (Step 2A) CodeSandbox Setup
### Sign in with your GitHub account
https://codesandbox.io/
As of December 2019, CodeSandbox allows logging in with only GitHub accounts. You need to login with your own GitHub account.
### Create a new sandbox
It's pretty simple. Create a new sandbox by importing this repostiory. The steps are:
* Click `Create Sandbox`
* Go to `Import` tab
* Put `https://github.com/seratch/bolt-starter` in the textbox
* Click `Open Sandbox`Then, fork the template project to create your own sandbox:
In your own sandbox project, configure secrets as below:
* SLACK_SIGNING_SECRET: Use the value you can find at **Basic Information > App Credentials > Signing Secret**
* SLACK_BOT_TOKEN: Use the Bot User OAuth Access Token (starting with `xoxb-`) you can find at **Settings > Install App**That's all! If your changes are not reflected to the running sandbox, click `Restart Sandbox` button.
### Set Request URLs (Slack App)
You must see `https://{random}.sse.codesandbox.io/` URL in the right pane on CodeSandbox.
You can go with `https://{random}.sse.codesandbox.io/slack/events` for all of the Slack App Request URLs.
You need to configure the following three settings with the URL.
* Interactive Components: Turn on first, set the Request URL, and then click "Save Changes" button
* Slash Commands: Add `/open-modal` command with the above URL for Reequest URL
* Event Subscriptions: Turn on first, set the Request URL, add `app_mention` in Bot Events, and then click "Save Changes" button### Re-install Slack App to your workspace
`https://api.slack.com/apps/{APP_ID}/install-on-team`
---
## (Step 2B) Glitch Setup
https://glitch.com/
### Create a Glitch project
The steps are similar to CodeSandbox.
After creating a project, duplicate `_env` file and name it as `.env`. The file named `.env` will be automatically marked as a secret file.
After modifying `.env` file, make sure if the app is running without any problems by checking the logs.
### Set Request URLs (Slack App)
You must see `https://{some-fancy-name}.glitch.me/` URL in the Live App settings on Glitch.
You can go with `https://{some-fancy-name}.glitch.me/slack/events` for all of the Slack App Request URLs.
* `https://api.slack.com/apps/{APP_ID}/event-subscriptions`
* `https://api.slack.com/apps/{APP_ID}/slash-commands`
* `https://api.slack.com/apps/{APP_ID}/interactive-messages`### Re-install Slack App to your workspace
`https://api.slack.com/apps/{APP_ID}/install-on-team`
---
## (Step 2C) Your Local Machine Setup
### ngrok Setup
https://ngrok.com/
```bash
ngrok http 3000
```If you have a paid license, you can configure a fixed subdomain.
```bash
ngrok http 3000 --subdomain your-awesome-subdomain
```### Node Version Manager (nvm) Setup
#### Linux / macOS
* Install [Node Version Manager (nvm)](https://github.com/nvm-sh/nvm#installation-and-update)
* `nvm install --lts` (installing latest LTS version)#### Windows
* Install [nvm-windows](https://github.com/coreybutler/nvm-windows) from [here](https://github.com/coreybutler/nvm-windows/releases)
* `mvn list available` to check the available versions
* `nvm install {latest LTS}` (installing latest LTS version)If you go with WSL, follow the same steps in `Linux / macOS`.
### Start with this template
Or it's also possible to download this project template:
`git clone [email protected]:seratch/bolt-starter.git` or https://github.com/seratch/bolt-starter/archive/master.zip
### Run the app
```bash
cd bolt-starter
cp _env .env
# edit .env
npm i
npm run local
```### Set Request URLs (Slack App)
Set `https://{your-awesome-subdomain}.ngrok.io/slack/events` to all of the followings:
* `https://api.slack.com/apps/{APP_ID}/slash-commands`
* `https://api.slack.com/apps/{APP_ID}/event-subscriptions`
* `https://api.slack.com/apps/{APP_ID}/interactive-messages`#### Slash Commands
Access **Features > Slash Commands** from the left sidebar. Create a slash command named `/open-modal`.
`https://api.slack.com/apps/{APP_ID}/slash-commands`
* Command: `/open-modal`
* request URL: `https://{your-awesome-subdomain}.ngrok.io/slack/events`
* Short Description: whatever you like
* Click "Save" for sure#### Configure Event Subscriptions
Access **Features > Event Subscriptions** from the left sidebar. Add an event subscription for `app_mention` events and click "Save Changes" button for sure..
`https://api.slack.com/apps/{APP_ID}/event-subscriptions`
* `app_mention`
#### Configure Interactivity
Access **Features > Interactivity & Shortcuts** from the left sidebar. Set the Request URL for Interactity and click "Save Changes" button for sure.
`https://api.slack.com/apps/{APP_ID}/interactive-messages`
#### Global Shortcuts
Access **Features > Interactivity & Shortcuts > Shortcuts** from the left sidebar. Create a new global shortcut with Callback ID `open-modal`.
* Name: whatever you like
* Short Description: whatever you like
* Callback ID: `open-modal`
* Click "Create"### Re-install the app to your workspace
`https://api.slack.com/apps/{APP_ID}/install-on-team`
# License
The MIT License