Crates.io | spotify-oauth |
lib.rs | spotify-oauth |
version | 0.3.0 |
source | src |
created_at | 2019-03-15 20:20:27.25918 |
updated_at | 2019-12-28 17:28:22.057686 |
description | An implementation of the Spotify Authorization Code Flow in Rust |
homepage | https://github.com/FrictionlessPortals/spotify-oauth |
repository | https://github.com/FrictionlessPortals/spotify-oauth |
max_upload_size | |
id | 121114 |
size | 89,629 |
spotify-oauth is a library for Spotify Authorization. It features a full implementation of the Authorization Code Flow that Spotify requires a user to undergo before using the web API.
This example shows how the library can be used to create a full authorization flow for retrieving the token required to use the web API.
use std::{io::stdin, str::FromStr, error::Error};
use spotify_oauth::{SpotifyAuth, SpotifyCallback, SpotifyScope};
#[async_std::main]
async fn main() -> Result<(), Box<dyn Error + Send + Sync + 'static>> {
// Setup Spotify Auth URL
let auth = SpotifyAuth::new_from_env("code".into(), vec![SpotifyScope::Streaming], false);
let auth_url = auth.authorize_url()?;
// Open the auth URL in the default browser of the user.
open::that(auth_url)?;
println!("Input callback URL:");
let mut buffer = String::new();
stdin().read_line(&mut buffer)?;
// Convert the given callback URL into a token.
let token = SpotifyCallback::from_str(buffer.trim())?
.convert_into_token(auth.client_id, auth.client_secret, auth.redirect_uri).await?;
println!("Token: {:#?}", token);
Ok(())
}
More API information can be located here.
If you have any suggestions or issues towards this library, please submit an issue. Pull requests, code reviewing and feedback are welcome.