Crate tgbot[−][src]
A Telegram Bot API client library
TGBOT
A full-featured Telegram Bot API client
Installation
[dependencies]
tgbot = "0.13.0"
Example
Long polling:
use futures_util::future::BoxFuture; use std::env; use tgbot::{Api, Config, UpdateHandler}; use tgbot::longpoll::LongPoll; use tgbot::methods::SendMessage; use tgbot::types::{Update, UpdateKind}; struct Handler { api: Api, } impl UpdateHandler for Handler { type Future = BoxFuture<'static, ()>; fn handle(&self, update: Update) -> Self::Future { println!("got an update: {:?}\n", update); let api = self.api.clone(); Box::pin(async move { if let UpdateKind::Message(message) = update.kind { if let Some(text) = message.get_text() { let chat_id = message.get_chat_id(); let method = SendMessage::new(chat_id, text.data.clone()); api.execute(method).await.unwrap(); } } }) } } #[tokio::main] async fn main() { let token = env::var("TGBOT_TOKEN").expect("TGBOT_TOKEN is not set"); let api = Api::new(Config::new(token)).expect("Failed to create API"); LongPoll::new(api.clone(), Handler { api }).run().await; }
Webhook:
use futures_util::future::BoxFuture; use tgbot::{UpdateHandler, types::Update, webhook}; struct Handler; impl UpdateHandler for Handler { type Future = BoxFuture<'static, ()>; fn handle(&self, update: Update) -> Self::Future { Box::pin(async move { println!("got an update: {:?}\n", update); }) } } #[tokio::main] async fn main() { webhook::run_server(([127, 0, 0, 1], 8080), "/", Handler).await.unwrap(); }
See more examples in examples directory.
In order to run an example you need to create a .env
file:
cp sample.env .env
Don’t forget to change value of TGBOT_TOKEN
and other variables if required.
Changelog
See CHANGELOG.md
Code of Conduct
See CODE_OF_CONDUCT.md.
LICENSE
The MIT License (MIT)
Re-exports
pub use mime; |
Modules
longpoll | Utilities to receive updates using long poll |
methods | Methods available in the Bot API |
types | Types available in the Bot API |
webhook | Services to receive updates via webhook |
Structs
Api | Telegram Bot API client |
Config | An API config |
SyncedUpdateHandler | A wrapper for non-sync |
Vec1 |
|
Enums
ApiError | A general API error |
DownloadFileError | An error when downloading file |
ExecuteError | An error when executing method |
ParseProxyError | An error when parsing proxy |
Traits
UpdateHandler | An update handler |