24个版本
0.0.27 | 2021年5月6日 |
---|---|
0.0.26 | 2021年4月6日 |
0.0.22 | 2021年3月17日 |
0.0.19 | 2021年2月27日 |
0.0.4 | 2020年5月31日 |
#508 in 身份验证
用于 2 crates
86KB
1.5K SLoC
Kuon
Twitter客户端库,用Rust编写。
受 anaconda 启发
示例
let builder = kuon::TwitterAPI::builder()
.access_token("access_token")
.access_token_secret("access_token_secret")
.api_key("api_key")
.api_secret_key("api_secret_key");
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?;
简短示例
// Please set API_KEY, API_SECRET_KEY, ACCESS_TOKEN, ACCESS_TOKEN_SECRET in your environment
let api = kuon::TwitterAPI::new_using_env().await?;
let res = api.search_tweets().q("rust").send().await?;
for tweet in res.statuses {
println!("{}", tweet.text);
}
高级类型安全用法
use anyhow::Result;
#[tokio::main]
async fn main() -> Result<()> {
// Please set API_KEY, API_SECRET_KEY, ACCESS_TOKEN, ACCESS_TOKEN_SECRET in environment
let api: kuon::TwitterAPI = kuon::TwitterAPI::new_using_env().await?;
let res = api
.search_tweets()
.q("rust")
// .geocode("geocode")
// .lang("lang")
// .locale("locale")
// .result_type("result_type")
// .count(100)
// .until("2000-01-01")
// .since_id(0)
// .max_id(100000000)
// .include_entities(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(())
}
有关更多详细信息,请参阅 /examples
。
这个crate的名字来源于日本虚拟YouTuber Chitose Kudou
依赖关系
~8–23MB
~327K SLoC