teloxide/README.md
Temirkhan Myrzamadi ff53fca49a
Update README.md
2020-02-13 23:27:07 +06:00

1.9 KiB

teloxide

A full-featured framework that empowers you to easily build Telegram bots using the async/.await syntax in Rust. It handles all the difficult stuff so you can focus only on your business logic.

Getting started

  1. Create a new bot using @Botfather to get a token in the format 123456789:blablabla.
  2. Initialise the TELOXIDE_TOKEN environmental variable to your token:
$ export TELOXIDE_TOKEN=MyAwesomeToken
  1. Be sure that you are up to date:
$ rustup update stable
  1. Execute cargo new my_bot, enter the directory and put these lines into your Cargo.toml:
[dependencies]
teloxide = "0.1.0"
log = "0.4.8"
tokio = "0.2.11"
pretty_env_logger = "0.4.0"

The ping-pong bot

This bot has a single handler, which answers "pong" to each incoming message:

use teloxide::prelude::*;

#[tokio::main]
async fn main() {
    teloxide::enable_logging!();
    log::info!("Starting the ping-pong bot!");

    let bot = Bot::from_env();

    Dispatcher::<RequestError>::new(bot)
        .message_handler(&|ctx: DispatcherHandlerCtx<Message>| async move {
            ctx.answer("pong").send().await?;
            Ok(())
        })
        .dispatch()
        .await;
}