hubot-slack
This is a Hubot adapter to use with Slack.
Getting Started
Creating a new bot
npm install -g hubot coffee-script yo generator-hubot
mkdir -p /path/to/hubot
cd /path/to/hubot
yo hubot
and enter 'slack' (no quotes) when prompted for the adapter, or set everything with the option flags- Initialize git and make your initial commit
- Check out the hubot docs for further guidance on how to build your bot
Testing your bot locally
HUBOT_SLACK_TOKEN=xoxb-1234-5678-91011-00e4dd ./bin/hubot --adapter slack
Deploying to Heroku
This is a modified set of instructions based on the instructions on the Hubot wiki.
-
Follow the instructions above to create a hubot locally
-
Install heroku toolbelt if you haven't already.
-
heroku create my-company-slackbot
-
heroku addons:create rediscloud:30
-
Activate the Hubot service on your "Team Services" page inside Slack.
-
Add the config variables. For example:
% heroku config:add HEROKU_URL=https://my-company-slackbot.herokuapp.com % heroku config:add HUBOT_SLACK_TOKEN=xoxb-1234-5678-91011-00e4dd
-
Deploy the bot:
% git push heroku master
-
Profit!
Upgrading from earlier versions of Hubot
Version 3 of the hubot-slack adapter requires different server support to previous versions. If you have an existing "hubot" integration set up you'll need to upgrade:
- Go to https://my.slack.com/services/new/hubot and create a new hubot integration
- Run
npm install hubot-slack --save
to update your code. - Test your bot locally using:
HUBOT_SLACK_TOKEN=xoxb-1234-5678-91011-00e4dd ./bin/hubot --adapter slack
- Update your production startup scripts to pass the new
HUBOT_SLACK_TOKEN
. You can remove the otherHUBOT_SLACK_*
environment variables if you want. - Deploy your new hubot to production.
- Once you're happy it works, disable the old hubot integration from https://my.slack.com/services
Configuration
This adapter uses the following environment variables:
HUBOT_SLACK_TOKEN
- this is the API token for the Slack user you would like to run Hubot under.
To add or remove your bot from specific channels or private groups, you can use the /kick and /invite slash commands that are built into Slack.
If you have scripts that send notifications to specific channels, use the channel name ie. HUBOT_TWITTER_MENTION_ROOM="#general"
Keep in mind that your bot needs to be joined to your specific channels by the /invite slash command.
If you're using the hubot-auth script, you can get the user IDs required for the HUBOT_AUTH_ADMIN
setting by calling the users.list API method.
Copyright
Copyright © Slack Technologies, Inc. MIT License; see LICENSE for further details.