Twitter Client Library written in Rust.
inspired by anaconda
```rust let builder = kuon::TwitterAPI::builder() .accesstoken("accesstoken") .accesstokensecret("accesstokensecret") .apikey("apikey") .apisecretkey("apisecretkey");
let api = builder.build().await?;
let res = api.search_tweets().q("rust").send().await?; let res = api.favorite().id(0).send().await?; let res = api.retweet().id(0).send().await?; ```
```rust // Please set APIKEY, APISECRETKEY, ACCESSTOKEN, ACCESSTOKENSECRET in your environment let api = kuon::TwitterAPI::newusingenv().await?;
let res = api.search_tweets().q("rust").send().await?; for tweet in res.statuses { println!("{}", tweet.text); } ```
```rust use anyhow::Result;
async fn main() -> Result<()> { // Please set APIKEY, APISECRETKEY, ACCESSTOKEN, ACCESSTOKENSECRET in environment let api: kuon::TwitterAPI = kuon::TwitterAPI::newusingenv().await?; let res = api .searchtweets() .q("rust") // .geocode("geocode") // .lang("lang") // .locale("locale") // .resulttype("resulttype") // .count(100) // .until("2000-01-01") // .sinceid(0) // .maxid(100000000) // .includeentities(true) .send() .await;
match res {
Ok(search_result) => {
for tweet in search_result.statuses {
println!("{}", tweet.text);
}
}
Err(kuon::Error::TwitterAPIError(e, param_str)) => {
// You can confirm a error originated from Twitter API.
println!("{}", param_str);
assert!(e.errors.len() > 0)
}
Err(kuon::Error::HTTPRequestError(e)) => {
println!("{}", e);
// Do something!
}
_ => panic!("Unexpected error!"),
}
Ok(())
} ```
See more details for /examples
.
This crate is named after Japanese Virtual YouTuber Chitose Kudou