vkrs

Vkontakte API Rust client library

Join the chat at https://gitter.im/kstep/vkrs Travis CI build status Downloads Version License MIT/Apache-2.0 Code coverage at Coveralls

Documentation

Usage

Add to your Cargo.toml:

toml [dependencies] vkrs = "0.4.0"

Then add your app at vk.com.

Then authorize and use:

```rust extern crate vkrs;

use std::{env, io}; use vkrs::*;

fn main() { let oauth = api::Client::auth( env::var("VKAPPID").unwrap(), env::var("VKAPPSECRET").unwrap());

let auth_uri = oauth.auth_uri(Some(auth::Permission::Audio.as_ref()), None).unwrap();
println!("Go to {} and enter code below...", auth_uri);

let inp = io::stdin();
let code = {
    let mut buf = String::new();
    inp.read_line(&mut buf).unwrap();
    buf
};

// You may want to save this token for future use to avoid asking user
// to authorize the app on each run.
let token = oauth.request_token(code.trim()).unwrap();

// The access token is JSON serializable with serde, so you can do it this way:
// File::create(TOKEN_FILE).ok().map(|mut f| serde_json::to_writer(&mut f, &token).ok()).unwrap();
//
// And then you can load it again:
// let token: auth::AccessToken = File::open(TOKEN_FILE).ok().and_then(|mut f| serde_json::from_reader(&mut f).ok()).unwrap();

let songs = Client::new().token(&token).get(
    audio::Search::new()
        .q("Poets Of The Fall")
        .performer_only(true)
        .count(200))
    .unwrap();

for song in &songs.items {
    println!("{:?}", song);
}

} ```

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.