Crate zoom_api

Source
Expand description

A fully generated, opinionated API client library for Zoom.

docs.rs

§API Details

The Zoom API allows developers to access information from Zoom. You can use this API to build private services or public applications on the Zoom App Marketplace. To learn how to get your credentials and create private/public applications, read our Authorization Guide. All endpoints are available via https and are located at api.zoom.us/v2/.

For instance you can list all users on an account via https://api.zoom.us/v2/users/.

API Terms of Service

§Contact

nameurlemail
Zoom Developershttps://developer.zoom.us/developersupport@zoom.us

§License

nameurl
MIT for OAS 2.0https://opensource.org/licenses/MIT

§Client Details

This client is generated from the Zoom OpenAPI specs based on API spec version 2.0.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]
zoom-api = "0.10.0"

§Basic example

Typical use will require intializing a Client. This requires a user agent string and set of credentials.

use zoom_api::Client;

let zoom = 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:

  • ZOOM_CLIENT_ID
  • ZOOM_CLIENT_SECRET
  • ZOOM_REDIRECT_URI

And then you can create a client from the environment.

use zoom_api::Client;

let zoom = 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 zoom_api::Client;

async fn do_call() {
    let mut zoom = 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 = zoom.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 = zoom.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 = zoom.refresh_access_token().await.unwrap();
}

Modules§

accounts
archiving
billing
chat_channels
chat_channels_account_level
chat_messages
chatbot_messages
cloud_recording
common_area_phones
contacts
dashboards
deprecated_api_endpoints
devices
groups
im_chat
im_groups
meetings
pac
phone
phone_auto_receptionists
phone_blocked_list
phone_call_queues
phone_devices
phone_reports
phone_shared_line_groups
phone_site
reports
roles
rooms
rooms_account
rooms_devices
rooms_location
sip_connected_audio
sip_phone
tracking_field
tsp
types
The data types sent to and returned from the API client.
users
webinars

Structs§

AccessToken
Client
Entrypoint for interacting with the API client.
HeaderMap
A set of HTTP headers
Response
StatusCode
An HTTP status code (status-code in RFC 7230 et al.).

Enums§

ClientError
Errors returned by the client

Constants§

FALLBACK_HOST