4个版本

0.1.3 2019年4月24日
0.1.2 2019年4月24日
0.1.1 2019年4月24日
0.1.0 2019年4月19日

#40 in #bot-api

MIT许可证

160KB
4K SLoC

Telegrambot

Build Status

一个针对Rust的Telegram机器人API

用法

telegrambot = "0.1"

示例

一个简单示例。 (example/simple)

use futures::future::Future;

use telegrambot::api::SendMessage;
use telegrambot::TelegramBot;

fn main() {
  let token = env::var("TELEGRAM_BOT_TOKEN").unwrap();
  let cfg = Config::builder(token)
    .proxy("http://127.0.0.1:1081")
    .build()
    .unwrap();

  TelegramBot::new(cfg).unwrap()
    .on_text(|(api, vtm)| {
      let first_name = vtm.message.from.unwrap().first_name;
      println!("<{}>: {}", first_name, vtm.text);
      telegrambot::spawn(
        api.send_message(&SendMessage::new(vtm.message.chat.id(),
         format!("Hi, {}! You just wrote '{}'", first_name, vtm.text)))
          .map(|_| {})
          .map_err(|_| {})
      );
    })
    .start()
    .unwrap();
}

命令示例 (example/command.rs)

use futures::future::Future;

use telegrambot::api::SendMessage;
use telegrambot::TelegramBot;

fn main() {
  let token = env::var("TELEGRAM_BOT_TOKEN").unwrap();
  let cfg = Config::builder(token)
    .proxy("http://127.0.0.1:1081")
    .build()
    .unwrap();

  TelegramBot::new(cfg).unwrap()
    .on_command("/list", |(api, vcm)| {
      telegrambot::spawn(
        api.send_message(&SendMessage::new(vcm.message.chat.id(),
         format!("Call list command")))
          .map(|_| {})
          .map_err(|_| {})
      );
    })
    .on_command("/page", |(api, vcm)| {
      telegrambot::spawn(
        api.send_message(&SendMessage::new(vcm.message.chat.id(),
         format!("Call page command, and arguments for this command: {:?}", vcm.args)))
          .map(|_| {})
          .map_err(|_| {})
      );
    })
    .start()
    .unwrap();
}

支持参数分析。一些示例

  • /页面1 10

    args: ["1", "10"]

  • /开始"只做这件事" 'from现在开始'

    args: ["Just do it", "from now on"]

  • /运行'Just '

    args: ["Just do it"]

更多

更多示例请见 examples

其他

感谢telegram-rs/telegram-bot项目,Telegram是对telegram-rs/telegram-bot的修改。

依赖项

~18–27MB
~482K SLoC