Crate google_drive

Source
Expand description

A fully generated, opinionated API client library for Google Drive.

docs.rs

§API Details

Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.

API Terms of Service

§Contact

nameurl
Googlehttps://google.com

§License

nameurl
Creative Commons Attribution 3.0http://creativecommons.org/licenses/by/3.0/

§Client Details

This client is generated from the Google Drive OpenAPI specs based on API spec version v3. 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]
google-drive = "0.7.0"

§Basic example

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

use google_drive::Client;

let google drive = 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:

  • GOOGLE DRIVE_CLIENT_ID
  • GOOGLE DRIVE_CLIENT_SECRET
  • GOOGLE DRIVE_REDIRECT_URI

And then you can create a client from the environment.

use google_drive::Client;

let google drive = 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 google_drive::Client;

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

Modules§

about
changes
channels
comments
drives
files
permissions
replies
revisions
teamdrives
traits
types
The data types sent to and returned from the API client.

Structs§

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

Enums§

ClientError
Errors returned by the client

Constants§

FALLBACK_HOST