Hey folks! Today, I'm going to share one of our code samples that will show you how to deploy a simple Slack bot. If you're looking to connect a cloud service to Slack to publish status updates, or something else like that, this should help you get started. We'll walk through a step-by-step process of writing a Go program using the github.com/slack-go/slack library to interact with the Slack API and easily deploy it using Defang.
Prerequisites
Before we dive into the details, let's make sure you have everything you need to get started:
-
Install Defang CLI: Simplify your deployment process by installing the Defang CLI tool. Follow the instructions here to get it up and running quickly.
-
Slack API Token: Create a Slack App at https://api.slack.com/apps, granting it the necessary permissions, including the bot
chat:write
scope. -
Install the app in your workspace: You'll need to install the app in your workspace for it to work. Click the "Install to Workspace" button in the Slack admin UI to do this. Mine says "Reinstall" because I've already installed it.
-
Copy the Bot User OAuth Access Token: This token will authenticate your Slackbot with the Slack API.
-
Invite the Bot to a Channel: To enable your Slackbot, invite it to the desired channel using the
@<botname>
command. In the screenshot below, my bot's name actually starts with the word invite, but if your bot is calledmycoolbot
you would invite it with@mycoolbot
. This ensures your Slackbot has the required permissions to interact with the channel. -
Clone the Sample Code: Clone the Defang repository and navigate to the
samples/golang/slackbot
directory. This directory contains the sample code for the Slackbot.
git clone https://github.com/DefangLabs/defang
cd defang/samples/golang/slackbot