No Description

JeongHoon Byun (aka Outsider) 730a7216d5 Merge pull request #72 from ImJustToNy/patch-1 7 years ago
bin e3a453bedd added comment about the .env 7 years ago
locales 1953287778 Create pl.json 7 years ago
public c0c81a9acb fixed the 1 pixel column that was off in the background image 7 years ago
routes f35030b8df added setLocale 8 years ago
screenshots 90148b4df6 update the screenshot 8 years ago
views a48749945b Use type=email on input field 8 years ago
.gitignore f623f515d2 update README 7 years ago
Dockerfile 30788ef215 Add Docker support 8 years ago
LICENSE.md 06435ed629 add license 9 years ago
README.md f623f515d2 update README 7 years ago
app.js 27d67d80e6 i18n was a global variable because it wasn't declared with a var statement due to the line above it ending in a semicolon instead of a comma 8 years ago
app.json b438c78680 Typo fix, "info" -> "into" 8 years ago
azuredeploy.json c98c6db8b4 added azuredeploy template 7 years ago
config.js a497e2bbb1 rollback config.js 7 years ago
iisnode.yaml 40e7a7aa15 added iis yaml for azure 7 years ago
manifest.yml 5ca7da6437 Add Cloud Foundry manifest 7 years ago
package.json 345a399f07 added support for .env file for local testing 7 years ago

README.md

Slack Invite Automation

A tiny web application to invite a user into your slack team.

Inspired by How I hacked Slack into a community platform with Typeform and Socket.io's slack page.

This project support Heroku, Azure and Cloud Foundry.

Deploy to Heroku Deploy to Azure

Settings

You can set variables for your own purpose in config.js or environment variables.

config.js

Fill out config.js as your infomation.

  • community: your community or team name to display on join page.
  • slackUrl : your slack team url (ex: socketio.slack.com)
  • slacktoken : access token of slack. You can generate it in https://api.slack.com/web#auth. You should generate the token in admin user, not owner. If you generate the token in owner user, missing_scope error will be occurred.
  • inviteToken: an optional security measure - if it is set, then that token will be required to get invited.
  • locale: application language (currently en, de, es, fr, pt, pt-BR, zh-CN, zh-TW, ja and ko available).

Environment Variables

You can set environment variables directly or in .env file. If you want to use a .env file, create a file in the root called .env with the following key/value pairs. (.env files are added to the .gitignore.)

  • COMMUNITY_NAME : Your community or team name to display on join page.
  • SLACK_URL : Your slack team url (ex: socketio.slack.com)
  • SLACK_TOKEN : Your access token for slack.
    • You can generate it in https://api.slack.com/web#auth. You should generate the token as an admin user, not owner. If you generate the token in owner user, a missing_scope error may occur.
  • INVITE_TOKEN: An optional security measure - if it is set, then that token will be required to get invited.
  • LOCALE: Application language (currently en, de, es, fr, pt, zh-CN, zh-TW, ja and ko available).

Sample

COMMUNITY_NAME=socketio
SLACK_URL=socketio.slack.com
SLACK_TOKEN=ffsdf-5411524512154-16875416847864648976-45641654654654654-444334f43b34566f
INVITE_TOKEN=abcdefg
LOCAL=en

You can test your token via curl:

   curl -X POST 'https://YOUR-SLACK-TEAM.slack.com/api/users.admin.invite' \
   --data 'email=EMAIL&token=TOKEN&set_active=true' \
   --compressed

Heroku / Azure

Add the application settings that are defined above enviornment variables.

Run

Node.js is required.

$ git clone git@github.com:outsideris/slack-invite-automation.git
$ cd slack-invite-automation
$ npm install
$ npm start

You can access http://localhost:3000 on your web browser.

Run with Docker

It's easy to run this service if you have installed Docker on your system.

$ git clone git@github.com:outsideris/slack-invite-automation.git
$ cd slack-invite-automation
$ docker build -t slack-invite-automation .
$ docker run -it --rm -e COMMUNITY_NAME="YOUR-TEAM-NAME" -e SLACK_URL="YOUR-TEAM.slack.com" -e SLACK_TOKEN="YOUR-ACCESS-TOKEN" -p 3000:3000 slack-invite-automation