use slack_web_api::api::ChatPostMessageRequest;
use slack_web_api::blocks::{Block, SectionBlock, TextObject};
use slack_web_api::SlackClient;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let token = std::env::var("SLACK_BOT_TOKEN").expect("set the SLACK_BOT_TOKEN env var");
let mut args = std::env::args().skip(1);
let channel = args
.next()
.expect("usage: post_message <channel id> [text]");
let text = args
.next()
.unwrap_or_else(|| "Hello from slack-web-api".to_string());
let client = SlackClient::new(token);
let res = client
.chat_post_message(
&ChatPostMessageRequest::new(channel)
.text(text.clone())
.blocks(vec![Block::from(
SectionBlock::new().text(TextObject::mrkdwn(text)),
)]),
)
.await?;
println!("posted: channel={:?} ts={:?}", res.channel, res.ts);
Ok(())
}