Avoid using legacy scopes. Use only the specific permissions you need with a Slack app.

Legacy scopes that shouldn't be used

These scopes should no longer be requested in the OAuth authorization flow. Use more granular scopes instead.

Alternatives to legacy scopes

You'll need to create a Slack app to use any of these alternatives.

Alternatives to the read scope

This scope allows apps to read and inspect a wide range of data types.

Analyze which types of data your app needs and locate the accompanying scope in our scope catalog.

For instance, if you need to read public channel history, request channels:history. If you need to read data about public channels, request [channels:read].

You'll find a scope corresponding to almost all types of data you'll encounter on the Slack platform.

Alternatives to the post scope

This scope allows posting messages into Slack.

Create a Slack app and request the chat:write scope to use chat.postMessage to send messages to channels.

Alternatives to the client scope

This scope allows an app to retrieve all workspace events in real time.

We recommend using a combination of relevant scopes with the Events API to retrieve just the events your app needs.

If you must use the RTM API, you must use the classic bot scope and token model with rtm.connect instead.