auth_get_session/
auth_get_session.rs

1use dotenv::dotenv;
2use lastfm_rust::{APIResponse, Lastfm};
3use std::error::Error;
4
5#[tokio::main]
6async fn main() -> Result<(), Box<dyn std::error::Error>> {
7    dotenv().ok();
8    let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9    let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10
11    let lastfm = Lastfm::builder()
12        .api_key(api_key)
13        .api_secret(api_secret)
14        .build()?;
15
16    // Request token
17    let response = lastfm.auth().get_token().send().await?;
18
19    let token = match response {
20        APIResponse::Success(value) => value.token,
21        APIResponse::Error(err) => {
22            return Err(Box::new(err) as Box<dyn Error>);
23        }
24    };
25
26    println!("Token: {}", token);
27
28    // Authorize the token
29    lastfm.auth().pls_authorize(token.to_string());
30
31    // Get session key
32    let response = lastfm.auth().get_session().token(&token).send().await?;
33
34    println!("Session: {}", response);
35
36    Ok(())
37}