This articles is a translation of Cloud Functionsを使ってSlack AppのSlash Commandを実装
Overview
Implement Slash Command for Slack App using Cloud Functions.
Here is the boilerplate I made.
go-slack-app-on-cloud-functions-boilerplate
There are various ways to create a Slack App that can use Slash Command, but I decided to use CloudFront Functions because it's cheap, easy, and serverless.
premise
- Availability of Google Cloud Platform
- gcloud command setup completed
- the gcloud command must be available to deploy the application
- Cloud Build API enabled
- I need to build a function to deploy it to Cloud Functions.
create a function in Cloud Functions
Create a function in the Cloud Functions console.
Select HTTP
for the trigger type, Allow unauthenticated calls for authentication
, and check HTTPS required
.
Make a note of the trigger URL described in Cloud Functions Function Details > Triggers later after deploying the function.
Preparing the Slack App
Create a Slack App
In Create an app, press From scratch
.
Enter App Name
.
Select a workspace with Pick a workspace to develop your app in:
Press Create App
.
Set Slash Command
On the setting screen (ex.https://api.slack.com/app/*****
), select Slash Commands.
Press Create New Command
and optionally enter Command
, Short Description
, Usage Hint
, Escape channels, users, and links sent to your app
.
For Request URL
, enter the trigger URL you made a note of earlier.
The trigger URL has the format https://REGION-NAME-PROJECT-ID.cloudfunctions.net/FUNCTION_NAME
.
After entering, press Save
.
Install the Slack App
On the setting screen (ex. https://api.slack.com/apps/*****
), press Install App
.
Press Install to workspace
to install Appwo in any workspace.
Get the Signing Secret
On the setting screen (ex. https://api.slack.com/apps/*****
), press Basic Information
.
There is Signing Secret
in the item called App Credentials, so make a note of the value.
implement the function
Implement functions that deploy to Cloud Functions.
There are some addictive parts (such as the go mod vendor
part), but I will omit the implementation details.
See below for the source code.
go-slack-app-on-cloud-functions-boilerplate
deploy the function
Prepare environment variables according to the README of go-slack-app-on-cloud-functions-boilerplate and deploy.
Operation check
Try using the created Slash Command in Slack.
ex.
/hello Bob
Impression
I'd love to be able to code the part that makes a Slack App.
postscript
I wanted to create a Slack Command for attendance management at work go-slack-app-on-cloud-functions-boilerplate, I made akashi-slack-slash-command.
In this implementation, the storage is Spreadsheet, but when using Google Workspace, there is a management problem that Spreadsheet sharing settings cannot be flexibly adjusted around permissions, so at work, the storage is replaced from Spreadsheet to Cloud Storage I adjusted the implementation and used it.
If there is an organization that uses Akashi for attendance management and Slack for chat tools, I think Slack Command can be used easily.
It doesn't cost much to operate, and the scalability may be a bit questionable.
I think that it can probably be used without problems unless it is an organization with more than a few thousand people.
Top comments (0)