mirror of
https://github.com/teloxide/teloxide.git
synced 2025-01-03 09:49:07 +01:00
added part of getting started
This commit is contained in:
parent
e2619d778c
commit
a1534b3a14
1 changed files with 58 additions and 0 deletions
58
README.md
58
README.md
|
@ -16,3 +16,61 @@
|
|||
|
||||
A full-featured framework that empowers you to easily build [Telegram bots](https://telegram.org/blog/bot-revolution) using the [`async`/`.await`](https://rust-lang.github.io/async-book/01_getting_started/01_chapter.html) syntax in [Rust](https://www.rust-lang.org/). It handles all the difficult stuff so you can focus only on your business logic.
|
||||
</div>
|
||||
|
||||
# Getting started
|
||||
|
||||
Library requires rustc version more than 1.40.0. You can check your rustc version with command:
|
||||
```shell script
|
||||
rustup -V
|
||||
```
|
||||
If your rustc version lower than 1.40.0, update it with:
|
||||
```shell script
|
||||
rustup update stable
|
||||
```
|
||||
Than create Cargo project and write
|
||||
```toml
|
||||
teloxide = "0.1.0"
|
||||
```
|
||||
in your Cargo.toml file.
|
||||
|
||||
### Writing first bot
|
||||
First, create bot with [@botfather](https://t.me/botfather). After creating, botfather give you
|
||||
token in format `123456789:somemanyletters`.
|
||||
|
||||
Next, open yout `main.rs` file. Let's create a simple echo bot:
|
||||
```rust
|
||||
use futures::stream::StreamExt;
|
||||
use teloxide::{
|
||||
dispatching::{
|
||||
chat::{ChatUpdate, ChatUpdateKind, Dispatcher},
|
||||
update_listeners::polling_default,
|
||||
SessionState,
|
||||
},
|
||||
requests::Request,
|
||||
Bot,
|
||||
};
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() {
|
||||
let bot = &Bot::new("1061598315:AAErEDodTsrqD3UxA_EvFyEfXbKA6DT25G0");
|
||||
let mut updater = Box::pin(polling_default(bot));
|
||||
let handler = |_, upd: ChatUpdate| async move {
|
||||
if let ChatUpdateKind::Message(m) = upd.kind {
|
||||
let msg = bot.send_message(m.chat.id, m.text);
|
||||
msg.send().await.unwrap();
|
||||
}
|
||||
SessionState::Continue(())
|
||||
};
|
||||
let mut dp = Dispatcher::<'_, (), _>::new(handler);
|
||||
println!("Starting the message handler.");
|
||||
loop {
|
||||
let u = updater.next().await.unwrap();
|
||||
match u {
|
||||
Err(e) => eprintln!("Error: {}", e),
|
||||
Ok(u) => {
|
||||
let _ = dp.dispatch(u).await;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
|
Loading…
Reference in a new issue