41 个版本 (稳定)
100.100.100 |
|
---|---|
1.8.1 | 2022年1月29日 |
1.7.1 | 2021年8月24日 |
1.7.0 | 2021年2月15日 |
0.1.0 | 2019年6月11日 |
#3 in #tdlib
每月105次下载
620KB
10K SLoC
telegram-client
Rust 的 Telegram 客户端。
此crate使用td来调用Telegram客户端API。支持异步API。
用法
[dependencies]
telegram-client = "1.8.*"
版本
请阅读: 版本
注意
请注意,您需要在您的路径中具有tdjson dylib文件以构建和运行您的应用程序。有关更多信息,请参阅rtdlib-sys。
示例
block
fn main() {
let api = Api::default();
let mut client = Client::new(api.clone());
let listener = client.listener();
listener.on_receive(|(api, json)| {
debug!("receive {}", json);
Ok(())
});
client.daemon("telegram-rs");
}
async
#[tokio::main]
async fn main() {
let api = Api::rasync();
let mut client = Client::new(api.api().clone());
let listener = client.listener();
// listener.on_update_authorization_state...
client.start();
let chat = api.get_chat(GetChat::builder().chat_id(1)).await;
println!("{:#?}", chat);
}
更多
更多 示例
事件
大部分事件来自td,有两个特别关注的事件。
on_receive
此事件接收来自td的所有内容,返回数据类型是json字符串。
on_exception
当td返回的json无法反序列化,或您的事件处理器返回错误时,将调用此事件。
事件处理器返回错误的示例
listener.on_proxy(|(api, pxy)| {
debug!("Proxy info => {:?}", pxy);
Err(TGError::new("some error"))
});
依赖项
~11MB
~211K SLoC