diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d3d760..2d51900 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ### 0.15.1 (Next) * Your contribution here. +* [#260](https://github.com/slack-ruby/slack-ruby-bot/pull/260): Add brief migration guide - [@wasabigeek](https://github.com/wasabigeek). ### 0.15.0 (2020/5/8) diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md index 6af7b41..9e5a9ab 100644 --- a/DEPLOYMENT.md +++ b/DEPLOYMENT.md @@ -12,6 +12,8 @@ Once created, go to the app's Basic Info tab and grab the Client ID and Client S Alternatively, you can still [generate a legacy API token](https://api.slack.com/custom-integrations/legacy-tokens) for your app and use it for some interactions. +If you have a legacy API token, and would like to migrate to [slack-ruby-bot-server](https://github.com/slack-ruby/slack-ruby-bot-server), a brief [migration guide](MIGRATION.md) is provided. + #### SLACK_API_TOKEN Set the SLACK_API_TOKEN environment variable using the token received above. @@ -81,7 +83,7 @@ passenger_pre_start http://example.com:80/; Allow from all Options -MultiViews - Require all granted + Require all granted diff --git a/MIGRATION.md b/MIGRATION.md new file mode 100644 index 0000000..a7d638f --- /dev/null +++ b/MIGRATION.md @@ -0,0 +1,13 @@ +# Migrating from Legacy API Tokens + +New Slack Apps require authentication via OAuth, returning an access token that should be a drop-in replacement for `SLACK_API_TOKEN`. As of the time of writing, the tokens never expire, so you could potentially write your own OAuth flow to retrieve the access token separately. + +Alternatively, you could migrate to [slack-ruby-bot-server](https://github.com/slack-ruby/slack-ruby-bot-server). Note that this requires more infrastructure to support the OAuth flow. + +## Migrating to slack-ruby-bot-server +1. Setup a new `slack-ruby-bot-server` project, following the [guidelines](https://github.com/slack-ruby/slack-ruby-bot-server#run-your-own). +2. Copy over the `SlackRubyBot::Commands::Base` or `SlackRubyBot::Bot` concrete classes from your `slack-ruby-bot` project into the new project. If you used a [sample app](https://github.com/slack-ruby/slack-ruby-bot-server/tree/master/sample_apps), copy them into the [`commands` folder](https://github.com/slack-ruby/slack-ruby-bot-server/tree/master/sample_apps/sample_app_activerecord/commands) and require it in `commands.rb`. +3. Create a [Slack Button](https://api.slack.com/docs/slack-button), setting the redirect URL to your OAuth grant endpoint. In the sample app, this would be `/api/teams`. +4. Run your app and authenticate with the Slack button. + +**NOTE**: By default, other teams would be able to authenticate and connect their workspaces using the same Slack button. If this is not what you want, you would need to prevent it.