Skip to content
/ vkrs Public

Vkontakte (VK.com) API Rust client library

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

kstep/vkrs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e5f65b1 · Nov 20, 2018
Nov 20, 2018
Nov 20, 2018
Feb 3, 2016
Dec 11, 2016
Feb 4, 2016
Feb 5, 2016
Nov 17, 2018
Feb 2, 2016
Feb 7, 2016
Nov 20, 2018
Feb 24, 2016
Feb 3, 2016

Repository files navigation

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 Issue Stats Issue Stats

Documentation

Usage

Add to your Cargo.toml:

[dependencies]
vkrs = "0.6.3"

Then add your app at vk.com.

Then authorize and use:

extern crate vkrs;

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

fn main() {
    let api = api::Client::new();
    let oauth = api.auth(
        env::var("VK_APP_ID").unwrap(),
        env::var("VK_APP_SECRET").unwrap());

    let auth_uri = oauth.auth_uri(auth::Permission::Audio).unwrap();
    // Or if you want to get permissions for specific request:
    // let auth_uri = oauth.auth_uri_for::<audio::Search>();
    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 = api.call(Some(&token),
        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.

About

Vkontakte (VK.com) API Rust client library

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages