vkteams-bot-0.1.5 has been yanked.
VK Teams Bot API client
VK Teams Bot API client written in Rust.
Table of Contents
Environment
- Begin with bot API following instructions
- Set environment variables or save in
.env file
$ export VKTEAMS_VKTEAMS_BOT_API_TOKEN=<Your token here> $ export VKTEAMS_BOT_API_URL=<Your base api url> $ export VKTEAMS_PROXY=<Proxy>
$ set VKTEAMS_VKTEAMS_BOT_API_TOKEN=<Your token here> $ set VKTEAMS_BOT_API_URL=<Your base api url> $ set VKTEAMS_PROXY=<Proxy>
- 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>> {
dotenvy::dotenv().expect("Unable to load .env file");
pretty_env_logger::init();
info!("Starting...");
let bot = Bot::new(APIVersionUrl::V1);
send_text_msg(&bot).await.unwrap();
Ok(())
}
async fn send_text_msg(bot: &Bot) -> Result<(), Box<dyn std::error::Error>> {
let chat_events = bot.get_events().await.unwrap();
for event in chat_events.events {
let mut kb = Keyboard::new();
let mut html_parser = MessageTextParser::new();
match event.event_type {
EventType::NewMessage => {
kb.add_button(&ButtonKeyboard::cb(
String::from("test"),
String::from("test_callback_data"),
ButtonStyle::Primary,
))
.add_button(&ButtonKeyboard::url(
String::from("Example"),
String::from("https://example.com"),
ButtonStyle::Attention,
));
html_parser
.add(MessageTextFormat::Bold(String::from("Test BOLD message")))
.next_line()
.add(MessageTextFormat::Link(
String::from("https://example.com"),
String::from("Example"),
));
let msg = RequestMessagesSendTExt::new(event.payload.chat.unwrap().chat_id)
.set_keyboard(kb)
.set_reply_msg_id(event.payload.msg_id.unwrap())
.set_text(html_parser.parse());
bot.messages_send_text(msg).await.unwrap();
}
_ => {
warn!("Not implmented EventType: {:?}. Skip", &event.event_type);
}
}
}
Ok(())
}