31 lines
1.3 KiB
Rust
31 lines
1.3 KiB
Rust
use larksuite_oapi_sdk_rs::channel::{Channel, ChannelPolicy};
|
|
use larksuite_oapi_sdk_rs::{EventDispatcher, LarkClient, LarkError};
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
let app_id = std::env::var("APP_ID").expect("APP_ID env var required");
|
|
let app_secret = std::env::var("APP_SECRET").expect("APP_SECRET env var required");
|
|
let verification_token = std::env::var("VERIFICATION_TOKEN").unwrap_or_default();
|
|
let encrypt_key = std::env::var("ENCRYPT_KEY").unwrap_or_default();
|
|
|
|
let client = LarkClient::builder(app_id, app_secret).build()?;
|
|
let dispatcher = EventDispatcher::new(verification_token, encrypt_key);
|
|
|
|
Channel::builder(&client, dispatcher)
|
|
.policy(ChannelPolicy::default().require_mention(false))
|
|
.on_message(|message| async move {
|
|
println!("message_id: {}", message.message_id);
|
|
println!("raw content: {}", message.content);
|
|
println!("normalized text: {}", message.text.unwrap_or_default());
|
|
for resource in message.resources {
|
|
println!("resource: {} {}", resource.resource_type, resource.file_key);
|
|
}
|
|
Ok::<(), LarkError>(())
|
|
})
|
|
.build()
|
|
.start()
|
|
.await?;
|
|
|
|
Ok(())
|
|
}
|