- I just wanted to fool around and see if i could get slack slash commands working
- requires
graphicsmagick - uses dropbox for a free awesomely usable solution.
- Provide in github secrets HEROKU_API_KEY, HEROKU_APP_NAME, HEROKU_APP_URL, HEROKU_EMAIL
- ALso set up your dropbox app with full access and token key - provide this key in github actions secrets as DROPBOX_API_TOKEN. This will be passed in as an ENV variable.
- it will use
meme-say/botsandmeme-say/generated-memes - make a folder named after what you'll call your custom command (for example
alex-say) in thebotsfolder and place your memeable pictures in that folder - ensure these images aren't too big. about 1000px is goopd - add the endpoint as a custom slash command in your slack group - you can reuse this endpoint for as many custom slash commands as you want - for example you could create an
ana-sayintegration, andelton-sayand despite being seperate integrations - you can use the same url. - It's nice to give the hint [first-line];[second-line]
Scenario: create a bot called lachlan
- log into the same dropbox account the dropbox app you created has.
- go into
meme-say/botsand create a folder called lachlan and put images in there - in slack create a custom slash command called lachlan-say(naming here is important as it must match the folder name you created)
- use the endpoint you created when you deployed this to heroku
- success
Given a slack command (for example alex-say) - it will use this as the prefix for the configured bucket.
It expects there to be images in this prefix - and will choose one at random.
It will then print your meme text and return it to slack.
- install
graphicsmagick - run
yarnornpm install - run the app with
yarn startornpm run start - Can test with: bot mode
curl --header "Content-Type: application/x-www-form-urlencoded" \
--request POST \
--data 'text=22222dasdgsadgaserpnot have;TP??&command=/ana-say' \
http://localhost:3000
meme-say mode
curl --header "Content-Type: application/x-www-form-urlencoded" \
--request POST \
--data 'text=will 22222dasdgsadgaserpnot have;TP??&command=/meme-say' \
http://localhost:3000
- (if using within lambda - need to run
npm install --arch=x64 --platform=linuxsharp` for distribution)
- zip distribution as a
.zipand useaws s3 cp meme.zip s3://terraform-wlee-meme/v1.0.20/meme.zip - use
terraform apply -var="app_version=1.0.20"