humanmade/slack-grouper

Name: slack-grouper

Owner: Human Made

Description: User group commands for slack

Created: 2017-03-29 19:23:25.0

Updated: 2017-04-06 03:46:11.0

Pushed: 2017-04-11 15:09:33.0

Homepage: null

Size: 26

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Serverless Slack App Boilerplate

Create a serverless Slack App with AWS Lambda, API Gateway, DynamoDB, and CloudFormation. All services will be automatically provisioned for you. All that's needed is your Slack App keys.

Install Serverless and provision AWS

serverless-slack-install

  1. Setup your AWS Credentials

  2. Install Serverless.js

    install -g serverless
    
  3. Install The Serverless Slack App Template and provision all AWS services

    erless install --url https://github.com/johnagan/serverless-slack-app
    erverless-slack-app
    install
    erless deploy
    
Create a Slack App

serverless-slack-app

  1. Create a new Slack App
  2. Use the generated POST url for Slack's slash commands, events, and interactive messages
  3. Update the serverless.yml with your new Slack App keys

Slack | Serverless :—:|:—: slack-app-keys | serverless-keys

Install the Slack App and Test

serverless-slack-app-install

  1. Deploy the changes to AWS serverless deploy
  2. Navigate to the GET url provided from serverless
  3. Walk through the OAuth flow and install the App
  4. Goto the team and test the slash command /greet
Update the Code
lash Command handler
k.on('/greet', (msg, bot) => {
t message = {
text: "How would you like to greet the channel?",
attachments: [{
  fallback: 'actions',
  callback_id: "greetings_click",
  actions: [
    { type: "button", name: "Wave", text: ":wave:", value: ":wave:" },
    { type: "button", name: "Hello", text: "Hello", value: "Hello" },
    { type: "button", name: "Howdy", text: "Howdy", value: "Howdy" },
    { type: "button", name: "Hiya", text: "Hiya", value: "Hiya" }
  ]
}]


 ephemeral reply
t.replyPrivate(message); 



nteractive Message handler
k.on('greetings_click', (msg, bot) => {
t message = { 
// selected button value
text: msg.actions[0].value 
  

 public reply
t.reply(message);

  1. Open the bot source code
  2. Add/Remove/Update the code with your bot functionality
  3. Run serverless deploy to deploy your changes to AWS
  4. Rinse and repeat.

All the tokens and urls above were invalidated before posting this tutorial. You will need to use your own tokens


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.