Expand description
A fully generated, opinionated API client library for Slack.
§API Details
One way to interact with the Slack platform is its HTTP RPC-based Web API, a collection of methods requiring OAuth 2.0-based user, bot, or workspace tokens blessed with related OAuth scopes.
§Contact
| name | url |
|---|---|
| Slack developer relations | https://api.slack.com/support |
§Client Details
This client is generated from the Slack OpenAPI
specs based on API spec version 1.7.0. This way it will remain
up to date as features are added. The documentation for the crate is generated
along with the code to make this library easy to use.
To install the library, add the following to your Cargo.toml file.
[dependencies]
slack-chat-api = "0.7.0"§Basic example
Typical use will require intializing a Client. This requires
a user agent string and set of credentials.
use slack_chat_api::Client;
let slack = Client::new(
String::from("client-id"),
String::from("client-secret"),
String::from("redirect-uri"),
String::from("token"),
String::from("refresh-token")
);Alternatively, the library can search for most of the variables required for the client in the environment:
SLACK_CLIENT_IDSLACK_CLIENT_SECRETSLACK_REDIRECT_URI
And then you can create a client from the environment.
use slack_chat_api::Client;
let slack = Client::new_from_env(
String::from("token"),
String::from("refresh-token")
);It is okay to pass empty values for token and refresh_token. In
the initial state of the client, you will not know these values.
To start off a fresh client and get a token and refresh_token, use the following.
use slack_chat_api::Client;
async fn do_call() {
let mut slack = Client::new_from_env("", "");
// Get the URL to request consent from the user.
// You can optionally pass in scopes. If none are provided, then the
// resulting URL will not have any scopes.
let user_consent_url = slack.user_consent_url(&["some-scope".to_string()]);
// In your redirect URL capture the code sent and our state.
// Send it along to the request for the token.
let code = "thing-from-redirect-url";
let state = "state-from-redirect-url";
let mut access_token = slack.get_access_token(code, state).await.unwrap();
// You can additionally refresh the access token with the following.
// You must have a refresh token to be able to call this function.
access_token = slack.refresh_access_token().await.unwrap();
}Modules§
- admin_
apps - admin_
apps_ approved - admin_
apps_ requests - admin_
apps_ restricted - admin_
conversations - admin_
conversations_ ekm - admin_
conversations_ restrict_ access - admin_
emoji - admin_
invite_ requests - admin_
invite_ requests_ approved - admin_
invite_ requests_ denied - admin_
teams - admin_
teams_ admins - admin_
teams_ owners - admin_
teams_ settings - admin_
usergroups - admin_
users - admin_
users_ session - api
- apps
- apps_
event_ authorizations - apps_
permissions - apps_
permissions_ resources - apps_
permissions_ scopes - apps_
permissions_ users - auth
- bots
- calls
- calls_
participants - chat
- chat_
scheduled_ messages - conversations
- dialog
- dnd
- emoji
- files
- files_
comments - files_
remote - migration
- oauth
- oauth_
v_ 2 - pins
- reactions
- reminders
- rtm
- search
- stars
- team
- team_
profile - types
- The data types sent to and returned from the API client.
- usergroups
- usergroups_
users - users
- users_
profile - views
- workflows
Structs§
- Access
Token - Client
- Entrypoint for interacting with the API client.
- Header
Map - A set of HTTP headers
- Response
- Root
Default Server - Status
Code - An HTTP status code (
status-codein RFC 7230 et al.).
Enums§
- Client
Error - Errors returned by the client