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 supports Heroku, Azure and Cloud Foundry.
To join the Girl Develop It Orlando Slack team, please visit: http://gdi-orlando-slack.herokuapp.com/
You can set variables for your own purpose in config.js
or environment variables.
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
: Your access token for Slack. (see Issue token)inviteToken
: An optional security measure - if it is set, then that token will be required to get invited.recaptchaSiteKey
: An optional security measure - if it is set, andrecaptchaSecretKey
is set, then a captcha will be required to get invited.recaptchaSecretKey
: An optional security measure - if it is set, andrecaptchaSiteKey
is set, then a captcha will be required to get invited.locale
: Application language (currentlycs
,de
,en
,es
,fr
,it
,ja
,ko
,nl
,pl
,pt
,pt-BR
,tr
,zh-CN
andzh-TW
available).
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. (see Issue token)INVITE_TOKEN
: An optional security measure - if it is set, then that token will be required to get invited.RECAPTCHA_SITE
: An optional security measure - used to enable reCAPTCHA.RECAPTCHA_SECRET
: An optional security measure - used to enable reCAPTCHA.LOCALE
: Application language (currentlycs
,de
,en
,es
,fr
,it
,ja
,ko
,nl
,pl
,pt
,pt-BR
,tr
,zh-CN
andzh-TW
available).
Sample
COMMUNITY_NAME=socketio
SLACK_URL=socketio.slack.com
SLACK_TOKEN=ffsdf-5411524512154-16875416847864648976-45641654654654654-444334f43b34566f
INVITE_TOKEN=abcdefg
LOCALE=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
Add the application settings that are defined in the environment variables above.
Node.js is required.
$ git clone https://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.
It's easy to run this service if you have installed Docker on your system.
$ git clone https://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
You should generate the token in admin user, not owner. If you generate the token in owner user, a missing_scope
error may occur.
There are two ways to issue the access token.
-
Visit https://api.slack.com/custom-integrations/legacy-tokens.
-
Click
Create token
.
-
Visit https://api.slack.com/apps and Create New App.
-
Click "Permissions".
-
In "OAuth & Permissions" page, select
admin
scope under "Permission Scopes" menu and save changes. -
Click "Install App to Team".
-
Visit https://slack.com/oauth/authorize?&client_id=CLIENT_ID&team=TEAM_ID&install_redirect=install-on-team&scope=admin+client in your browser and authorize it.
- It authorizes the
client
permission. Otherwise, you can see{"ok":false,"error":"missing_scope","needed":"client","provided":"admin"}
error. - Your
CLIENT_ID
could be found in "Basic Information" menu of your app page that you just install. - Your
TEAM_ID
could be found in https://api.slack.com/methods/team.info/test
- It authorizes the
You can use the badge to show status of user in your slack.
<img src="https://your.domain/badge.svg">