use std::sync::Arc;
use wecomx_runtime::{
BotGatewayTokenProvider, Credentials, MemoryCredentialStore, WecomClientBuilder,
};
#[tokio::main]
async fn main() -> Result<(), wecomx::Error> {
let bot_id = std::env::var("WECOM_BOT_ID").expect("missing WECOM_BOT_ID");
let secret = std::env::var("WECOM_BOT_SECRET").expect("missing WECOM_BOT_SECRET");
let store = Arc::new(MemoryCredentialStore::new(Credentials::default()));
let provider = BotGatewayTokenProvider::new(bot_id, secret, store);
let client = WecomClientBuilder::new()
.token_provider(Arc::new(provider))
.build()
.await?;
let mut argv: Vec<String> = std::env::args().collect();
argv[0] = "wecom".to_string();
client.run(argv).await?;
Ok(())
}