#api-client #calendar #google #events #client-token #generated #opinionated

google-calendar

针对Google Calendar API的全自动、有偏见的API客户端

14个不稳定版本 (5个重大更改)

0.7.0 2023年7月19日
0.5.0 2023年3月31日
0.4.1 2022年11月18日
0.3.1 2022年7月13日
0.1.2 2021年8月18日

#1473 in Web编程

Download history 34/week @ 2024-04-23 39/week @ 2024-04-30 37/week @ 2024-05-07 81/week @ 2024-05-14 62/week @ 2024-05-21 127/week @ 2024-05-28 107/week @ 2024-06-04 108/week @ 2024-06-11 77/week @ 2024-06-18 83/week @ 2024-06-25 78/week @ 2024-07-02 65/week @ 2024-07-09 75/week @ 2024-07-16 102/week @ 2024-07-23 128/week @ 2024-07-30 115/week @ 2024-08-06

每月下载量:435

MIT 许可证

235KB
4.5K SLoC

google-calendar

Google Calendar的全自动、有偏见的API客户端库。

docs.rs

API详情

操作事件和其他日历数据。

API服务条款

联系

名称 URL
Google https://google.com

许可证

名称 URL
创意共享署名3.0 http://creativecommons.org/licenses/by/3.0/

客户端详情

此客户端基于API规范版本 v3Google Calendar OpenAPI规范自动生成。这样,随着功能的增加,它将保持更新。该库的文档与代码一起生成,以便易于使用。

要安装库,请将以下内容添加到您的 Cargo.toml 文件中。

[dependencies]
google-calendar = "0.7.0"

基本示例

典型使用需要初始化一个 Client。这需要一个用户代理字符串和一系列凭证。

use google_calendar::Client;

let google calendar = Client::new(
    String::from("client-id"),
    String::from("client-secret"),
    String::from("redirect-uri"),
    String::from("token"),
    String::from("refresh-token")
);

或者,库可以在环境中搜索客户端所需的多数变量

  • GOOGLE CALENDAR_CLIENT_ID
  • GOOGLE CALENDAR_CLIENT_SECRET
  • GOOGLE CALENDAR_REDIRECT_URI

然后您可以从环境中创建一个客户端。

use google_calendar::Client;

let google calendar = Client::new_from_env(
    String::from("token"),
    String::from("refresh-token")
);

对于 tokenrefresh_token,传递空值是可以的。在客户端的初始状态下,您将不知道这些值。

要从头开始创建一个新客户端并获取 tokenrefresh_token,请使用以下命令。

use google_calendar::Client;

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

依赖关系

~22–38MB
~721K SLoC