vkteams-bot 0.1.2

VK Teams Bot API client
Documentation
vkteams-bot-0.1.2 has been yanked.

VK Teams Bot API client

VK Teams Bot API client written in Rust.

Table of Contents

Environment

  1. Begin with bot API following instructions
  2. Set environment variables or save in .env file
# Unix-like
$ export VKTEAMS_VKTEAMS_BOT_API_TOKEN=<Your token here> #require
$ export VKTEAMS_BOT_API_URL=<Your base api url> #require
$ export VKTEAMS_PROXY=<Proxy> #optional

# Windows
$ set VKTEAMS_VKTEAMS_BOT_API_TOKEN=<Your token here> #require
$ set VKTEAMS_BOT_API_URL=<Your base api url> #require
$ set VKTEAMS_PROXY=<Proxy> #optional
  1. Put lines in you Cargo.toml file
[dependencies]
vkteams_bot = "0.1"
log = "0.4"

Usage

#[macro_use]
extern crate log;
use vkteams_bot::{self, bot::types::*};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // CHeck .env file and init logger
    dotenvy::dotenv().expect("Unable to load .env file");
    pretty_env_logger::init();

    info!("Starting...");
    // Start bot with API version 1
    let bot = Bot::new(APIVersionUrl::V1);
    // Get initial events from the API
    let chat_events = bot.get_events().await.unwrap();
    // Loop at events
    for event in chat_events.events {
        match event.event_type {
            EventType::NewMessage => {
                // Get bot info
                let self_data = bot.self_get().await.unwrap();
                //Send answer to chat
                let msg = bot
                    .messages_send_text(RequestMessagesSendTExt {
                        chat_id: event.payload.chat.clone().unwrap().chat_id,
                        text: self_data.user_id.0,
                        reply_msg_id: None,
                        forward_chat_id: None,
                        forward_msg_id: None,
                        inline_keyboard_markup: None,
                        format: None,
                        parse_mode: None,
                    })
                    .await
                    .unwrap();
                // Delete message just posted
                bot.messages_delete_messages(RequestMessagesDeleteMessages {
                        chat_id: event.payload.chat.clone().unwrap().chat_id,
                        msg_id: msg.msg_id.unwrap(),
                    })
                    .await
                    .unwrap();
            }
            _ => {
                warn!("Not implmented EventType: {:?}. Skip", &event.event_type);
            }
        }
    }
    Ok(())
}