There are more than a few things called "tokens" in the Slack platform. It's easy to conflate them for each other or not understand the deep, almost spiritual purpose of each type.
Prepare for token strings values up to 255 characters long.
User tokens allow you to work directly on behalf of users, based on the OAuth scopes they award to your app.
Legacy tokens, scopes, and methods are better left to the past.
The bot user model is evolving! Currently in beta, you'll find more methods and scopes supporting bot tokens than ever before, but there's a catch — for most of these you'll need a new kind of more granular bot token.
Bot user tokens represent a bot associated with the app installed in a workspace. Unlike user tokens, they're not tied to a user's identity; they're just tied to your app.
Since acting independently allows your app to stay installed even when an installing user is deactivated, using bot tokens is usually for the best.
Check out the guide to new Slack apps for more info.
botscope with many different permissions included it.
botrequested during the OAuth installation flow have no effect on the bot user token
auth.revokedoes not uninstall the bot user. A new token may be obtained via OAuth or, for internal integrations, your app management console.
User tokens represent workspace members. They are issued for the user who installed the app and for users who authenticate the app. When your app asks for OAuth scopes, they are applied to user tokens. You can use these tokens to take actions on behalf of users.
channels:historygrants a user token access to
channels.historyfor any public channel)
The developer preview for workspace apps has ended. We're taking the components of workspace apps and breaking them apart: applying them in phases to existing as well as new apps. Read more about the motivation behind ending the preview.
For those who already have an existing app using a workspace token, here's a quick overview on how they work:
These tokens were associated with legacy custom integrations and early Slack integrations requiring an ambiguous "API token." They were generated using the legacy token generator and are no longer recommended for use. They take on the full operational scope of the user that created them. If you're building a tool for your own team, we encourage creating an internal integration with only the scopes it needs to work.
Verification tokens are deprecated. Use the more secure signing secret to verify Slack requests for authenticity.
Verification tokens weren't like these other token types. They weren't really tokens at all.