#google #routes #google-api #client #api-client #unoffical

google-api-rust-client-unoffical

Google API 的非官方客户端库

6 个版本

0.1.5 2024年7月13日
0.1.4 2024年6月30日

#550 in 网页编程

Download history 327/week @ 2024-06-22 184/week @ 2024-06-29 14/week @ 2024-07-06 111/week @ 2024-07-13 15/week @ 2024-07-20 5/week @ 2024-07-27

每月 152 次下载

Apache-2.0

78KB
1.5K SLoC

Google API 客户端

Google API 的非官方客户端库。
crate.io: google-api-rust-client-unoffical

安装

在您的项目目录中运行以下 Cargo 命令

cargo add google-api-rust-client-unoffical

或将以下行添加到您的 Cargo.toml 文件中

google-api-rust-client-unoffical = "0.1.5"

授权

从 Google Cloud Console 中的 APIs > Credentials 获取服务账户凭证或 API 密钥。

服务账户

从 JSON 文件创建凭证

let filepath: PathBuf = PathBuf::from_str("credentials.json")?;
let credentials = ServiceAccountCredentials::from_service_account_file(filepath)?;

从 JSON 字符串创建凭证

let credentials_json = serde_json::json!({
    "type": "service_account",
    "project_id": "xxx",
    "private_key_id": "xxx",
    "private_key": "-----BEGIN PRIVATE KEY-----\nsome_key\n-----END PRIVATE KEY-----\n",
    "client_email": "[email protected]",
    "client_id": "xxx",
    "auth_uri": "https://127.0.0.1/o/oauth2/auth",
    "token_uri": "https://oauth2.googleapis.com/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/xxx",
    "universe_domain": "googleapis.com"
}).to_string();
let credentials = ServiceAccountCredentials::from_service_account_info(credentials_json)?;

设置作用域

let scoped_credentials = credentials.with_scopes(vec!["https://www.googleapis.com/auth/cloud-translation"]);

设置主题

let subjected_crentials = credentials.with_subject("[email protected]");

直接获取访问令牌

let token = credentials.get_access_token().await?;

使用凭证与服务

let mut translation_service = TranslateService::new_with_credentials(credentials);
let response = translation_service.list_languages(Some("ja"), None).await?;

API 密钥

要使用 API 密钥,请在创建服务对象时传递它们。

let api_key = env::var("API_KEY")?;
let mut translation_service = TranslateService::new_with_api_key(api_key);
let response = translation_service.list_languages(Some("ja"), None).await?;

有关授权示例,请参阅 auth.rs


服务

Cloud Translation Basic Edition (v2)

支持的 API

  • Translate: 将输入文本翻译成目标文本。
  • Detect: 识别文本的语言。
  • Languages: 返回支持的语言列表。

有关使用示例,请参阅 translate_service.rs

Routes API

支持的 API

  • Compute Route: 获取不同交通方式(如步行、骑行或不同类型的车辆)之间的路线,包括路线细节,如距离、预计行驶时间、预期通行费和逐步导航说明。

  • Compute Route Matrix: 获取多个起点和终点之间推荐路线的信息矩阵,包括距离和预计到达时间。


有关使用示例,请参阅 route_service.rs

其他服务正在建设中!

依赖项

~13–26MB
~489K SLoC