#telegram-bot #telegram #bot-api #telegram-api #bot #api

telegram_bots_api

Telegram bots api 简单 Rust 封装,仅此而已

12 个版本 (破坏性更新)

0.79.0 2024年8月14日
0.77.0 2024年7月14日
0.71.0 2024年3月9日

#1074 in 网页编程

Download history 193/week @ 2024-04-24 62/week @ 2024-05-01 1/week @ 2024-05-08 348/week @ 2024-05-22 327/week @ 2024-05-29 27/week @ 2024-06-05 122/week @ 2024-06-12 65/week @ 2024-06-19 174/week @ 2024-07-10 23/week @ 2024-07-17 3/week @ 2024-07-24

每月200 次下载

MIT 许可证

1MB
16K SLoC

Telegram

Static Badge codecov crates.io Static Badge docs.rs FOSSA Status

https://github.com/khusnetdinov/telegram_bots_api/actions/workflows/codecov_report/badge.svg https://github.com/khusnetdinov/telegram_bots_api/actions/workflows/lints/badge.svg https://github.com/khusnetdinov/telegram_bots_api/actions/workflows/msrv/badge.svg https://github.com/khusnetdinov/telegram_bots_api/actions/workflows/features/badge.svg https://github.com/khusnetdinov/telegram_bots_api/actions/workflows/tests/badge.svg https://github.com/khusnetdinov/telegram_bots_api/actions/workflows/rolling/badge.svg

Telegram bots api 简单 Rust 封装,仅此而已。

特性

  • async: 异步执行 API 调用
  • sync: 同步执行 API 调用

安装

运行 cargo add telegram_bots_api,或将行添加到 Cargo.toml

[dependencies]
telegram_bots_api = "0.79.0"
rust-version = "1.74.0"

配置


USAGE:
    sync-playground [FLAGS] [OPTIONS] --token <token>

FLAGS:
    -d, --debug         Environment: Debug mode
    -h, --help          Prints help information
    -p, --production    Environment: Is production
    -V, --version       Prints version information

OPTIONS:
        --connect-timeout <connect-timeout>    Client: Connect timeout in secs. Set a timeout for only the connect phase
                                               [default: 5]
        --timeout <timeout>                    Client: Timeout in secs. The timeout is applied from when the request
                                               starts connecting until the response body has finished [default: 5]
        --token <token>                        Telegram: Token
        --updates-limit <updates-limit>        Updates: Limits the number of updates to be retrieved [default: 100]
        --updates-offset <updates-offset>      Updates: Identifier of the first update to be returned [default: 0]
        --updates-timeout <updates-timeout>    Updates: Timeout in seconds for long polling [default: 0]
        --url <url>                            Telegram: Api url [default: https://api.telegram.org]

如何使用

仅需要一个必需的标志是 token,示例运行

$ cargo run -- --token 0000000000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

文件结构

.
├── Cargo.lock                                        # Lock file
├── Cargo.toml                                        # Toml file
├── LICENSE                                           # LICENSE
├── README.md                                         # README
├── /examples                                         # Examples
│   ├── /async
│   │   ├── get_me.rs
│   │   └── playground.rs
│   └── /sync
│       ├── get_me.rs
│       └── playground.rs
├── postman.json                                      # Postman collection
└── /src                                              # Source code
    ├── /api                                          # Api structs definitions
    │   ├── /enums                                    # Enums
    │   │   ├── bot_command_scope.rs
    │   │   ...
    │   │   └── reply_markup.rs
    │   ├── enums.rs
    │   ├── mod.rs
    │   ├── /params                                   # Params structs for payload
    │   │   ├── add_sticker_to_set.rs
    │   │   ...
    │   │   └── upload_sticker_file.rs
    │   ├── params.rs
    │   ├── /requests                                 # Request traits
    │   │   ├── async.rs
    │   │   └── sync.rs
    │   ├── requests.rs
    │   ├── /responses                                # Telegram responses structs definitions
    │   │   ├── error.rs
    │   │   ├── parameters.rs
    │   │   └── result.rs
    │   ├── responses.rs
    │   ├── /types                                    # Telegram types 
    │   │   ├── animation.rs
    │   │   ...
    │   │   └── write_access_allowed.rs
    │   └── types.rs
    ├── /clients                                      # Clients definitions
    │   ├── async.rs
    │   ├── mod.rs
    │   └── sync.rs
    ├── config.rs                                     # Config definition
    ├── errors.rs                                     # Errors definition
    ├── lib.rs
    └── /tests
        ├── /clients                                  # Cleints
        │   ├── async.rs                              # Async client tests
        │   ├── mod.rs
        │   └── sync.rs                               # Sync client tests
        ├── config.rs                                 # Config tests
        ├── errors.rs                                 # Errors tests
        ├── /helpers                                  # Helpers for tests
        │   ├── mocked_async.rs
        │   ├── mocked_sync.rs
        │   └── mod.rs
        ├── mod.rs
        └── responses                                 # Example of json responses
            ├── add_sticker_to_set_error.json
            ...
            └── upload_sticker_file_success.json

依赖项

~12–30MB
~453K SLoC