41 个版本 (稳定)

100.100.100 2019年8月27日
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

Download history 2/week @ 2024-03-08 10/week @ 2024-03-15 19/week @ 2024-03-29 1/week @ 2024-04-05

每月105次下载

MIT 许可证

620KB
10K SLoC

telegram-client

Build Status

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