go-slack-utils

module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 12, 2022 License: MIT

README

go-slack-utils

GoDoc

What this is?

This is a general purpose utility library for using Slack's Block kit UI, with Go structs corresponding to the blocks used to create UI elements. Also included is middleware for validing Slack requests using HMAC-256 and the Slack secret signing key.

What this is not?

A Slack API wrapper. There's plenty of those out there.

Installation

go get -u github.com/chiefy/go-slack-utils

Usage

Middleware
func main() {
     
    r := mux.NewRouter()
    r.HandleFunc("/command", MySlashCommandHandler).Methods(http.MethodPost)
    r.Use(middleware.ValidateTimestamp)

    // It's up to you on how you configure injection of the slack signing secret
    signingSecret := os.Getenv("SLACK_SIGNING_SECRET")
    // Generate the validation middleware by injecting the secret
    validateReq := middleware.ValidateSlackRequest(signingSecret)
    r.Use(validateReq)

    srv := &http.Server{
        Handler:      r,
        Addr:         "127.0.0.1:" + os.Getenv("PORT"),
        WriteTimeout: 15 * time.Second,
        ReadTimeout:  15 * time.Second,
    }
    log.Fatal(srv.ListenAndServe())
}

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL