A tiny web application to invite a user into your Slack team.
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, andrecaptchaSecretKeyis set, then a captcha will be required to get invited.recaptchaSecretKey: An optional security measure - if it is set, andrecaptchaSiteKeyis 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-CNandzh-TWavailable).subpath: Sub-path in URL. For example, if/exampleis set, it's served in/example, not/. Default is/.
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-CNandzh-TWavailable).SUBPATH: Sub-path in URL. For example, if/exampleis set, it's served in/example, not/. Default is/.
Sample
COMMUNITY_NAME=HospitalRun
SLACK_URL=hospitalrun.slack.com
SLACK_TOKEN=ffsdf-5411524512154-16875416847864648976-45641654654654654-444334f43b34566f
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' \
--compressedNode.js is required.
$ git clone https://github.com/hospitalrun/slack-invite-automation.git
$ cd slack-invite-automation
$ npm install
$ npm startYou can access http://localhost:3000 on your web browser.
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
adminscope under "Permission Scopes" menu and save changes. -
Click "Install App to Workspace".
-
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 your app.
- This form requires the
clientpermission. Otherwise, you can see{"ok":false,"error":"missing_scope","needed":"client","provided":"admin"}error. - Your
TEAM_IDis the subdomain for your slack team, e.g. myteam.slack.com - your TEAM_ID ismyteam. - Your
CLIENT_IDfound in "Basic Information" section for your App. - You will be shown a
Installed App Settings > OAuth Tokens for Your Teamscreen. - You can test auto invites with curl by providing the
OAuth Access Token.
curl -X POST 'https://myteam.slack.com/api/users.admin.invite' \ --data 'email=test@email.com&token=OAuthAccessToken&set_active=true' \ --compressed
- This form requires the
Register a new site in Google reCAPTHCA as reCAPTCHA v2 type.
Set "Site key" as recaptchaSiteKey or RECAPTCHA_SITE,
and "Secret key" as recaptchaSecretKey or RECAPTCHA_SECRET.






