Rust + Google 스프레드시트 API 빠른 시작
12661 단어 rustapigooglecloud
최근에 저는 Rust를 배우고 있으며 Rust를 사용하여 Sheets API로 작업하고 싶었습니다.
슬프게도 시트 문서에는 Rust에 대한 빠른 시작이 언급되어 있지 않습니다.
따라서 이 게시물에서는 Rust에서 Sheets API를 사용하는 방법을 배우게 됩니다.
cargo new sheets_api_rust
Cargo.toml
는 다음과 같아야 합니다.[package]
name = "sheets_api_rust"
version = "0.1.0"
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
google-sheets4 = "*"
hyper = "^0.14"
hyper-rustls = "^0.22"
serde = "^1.0"
serde_json = "^1.0"
yup-oauth2 = "^5.0"
tokio = { version = "~1.2", features = [
"macros",
"io-util",
"rt",
"rt-multi-thread",
"fs",
] }
Google에서 api keys을 가져옵니다.
귀하의
credentials.json
는 다음과 같아야 합니다.{
"installed": {
"client_id": "384278056379-tr5pbot1mil66749n639jo54i4840u77.apps.googleusercontent.com",
"project_id": "sanguine-rhythm-105020",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_secret": "QeQUnhzsiO4t--ZGmj9muUAu",
"redirect_uris": ["urn:ietf:wg:oauth:2.0:oob", "http://localhost"]
}
}
그리고 마침내 당신의
main.rs
// This is a modified version of the example at:
// https://github.com/Byron/google-apis-rs/tree/main/gen/sheets4
extern crate google_sheets4 as sheets4;
extern crate hyper;
extern crate hyper_rustls;
extern crate yup_oauth2 as oauth2;
use sheets4::Error;
use sheets4::Sheets;
#[tokio::main]
async fn main() {
// Get an ApplicationSecret instance by some means. It contains the `client_id` and
// `client_secret`, among other things.
let secret = yup_oauth2::read_application_secret("clientsecret.json")
.await
.expect("client secret could not be read");
// Instantiate the authenticator. It will choose a suitable authentication flow for you,
// unless you replace `None` with the desired Flow.
// Provide your own `AuthenticatorDelegate` to adjust the way it operates and get feedback about
// what's going on. You probably want to bring in your own `TokenStorage` to persist tokens and
// retrieve them from storage.
let auth = yup_oauth2::InstalledFlowAuthenticator::builder(
secret,
yup_oauth2::InstalledFlowReturnMethod::HTTPRedirect,
)
.persist_tokens_to_disk("tokencache.json")
.build()
.await
.unwrap();
let hub = Sheets::new(
hyper::Client::builder().build(hyper_rustls::HttpsConnector::with_native_roots()),
auth,
);
let result = hub
.spreadsheets()
.get("1TWUpZdjXiquf-LsfbqXEIBVWgZ12XeaZtzrNp3uaHX8") // your spreadsheet id enters here
.doit()
.await;
// println!("{:?}",result);
match result {
Err(e) => match e {
// The Error enum provides details about what exactly happened.
// You can also just use its `Debug`, `Display` or `Error` traits
Error::HttpError(_)
| Error::Io(_)
| Error::MissingAPIKey
| Error::MissingToken(_)
| Error::Cancelled
| Error::UploadSizeLimitExceeded(_, _)
| Error::Failure(_)
| Error::BadRequest(_)
| Error::FieldClash(_)
| Error::JsonDecodeError(_, _) => println!("{}", e),
},
Ok(res) => println!("Success: {:?}", res),
}
}
붐, 이제 sheets4 docs을 탐색하여 더 많은 작업을 수행할 수 있습니다!
참고문헌
Reference
이 문제에 관하여(Rust + Google 스프레드시트 API 빠른 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rohanrajpal/rust-google-sheets-api-quickstart-7f1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)