pinterest-login
Simple crate to login to Pinterest and get the cookies via Chromiumoxide to simulate a browser (open a real browser actually), to use the Pinterest API without needing a developer account or an API key or anything that costs money :).

Asynchronous, and uses async-std as the runtime by default (you can use tokio if you want)
Examples
With the async-std runtime
use pinterest_login::config_builder::DefaultBrowserConfigBuilder;
use pinterest_login::login;
use pinterest_login::login_bot::DefaultBrowserLoginBot;
#[async_std::main]
async fn main() {
let email = std::env::var("PINTEREST_EMAIL").unwrap();
let password = std::env::var("PINTEREST_PASSWORD").unwrap();
let bot = DefaultBrowserLoginBot::new(email.as_str(), password.as_str());
let config_builder = DefaultBrowserConfigBuilder::default();
match login(&bot, &config_builder).await {
Ok(cookies) => {
println!("{}", cookies.len());
println!("{:?}", cookies);
}
Err(e) => {
eprintln!("The login was unsuccessful: {}", e);
}
};
}
use pinterest_login::config_builder::DefaultBrowserConfigBuilder;
use pinterest_login::login;
use pinterest_login::login_bot::DefaultBrowserLoginBot;
use std::time::Duration;
#[async_std::main]
async fn main() {
let email = std::env::var("PINTEREST_EMAIL").unwrap();
let password = std::env::var("PINTEREST_PASSWORD").unwrap();
let bot = DefaultBrowserLoginBot::new(email.as_str(), password.as_str());
let config_builder = DefaultBrowserConfigBuilder::new(false, Duration::from_secs(2).into(), None);
match login(&bot, &config_builder).await {
Ok(cookies) => {
}
Err(e) => {
eprintln!("The login was unsuccessful: {}", e);
}
};
}
With tokio runtime
use pinterest_login::config_builder::DefaultBrowserConfigBuilder;
use pinterest_login::login;
use pinterest_login::login_bot::DefaultBrowserLoginBot;
use std::time::Duration;
#[tokio::main]
async fn main() {
let email = std::env::var("PINTEREST_EMAIL").unwrap();
let password = std::env::var("PINTEREST_PASSWORD").unwrap();
let bot = DefaultBrowserLoginBot::new(email.as_str(), password.as_str());
let config_builder = DefaultBrowserConfigBuilder::new(false, Duration::from_secs(2).into(), None);
match login(&bot, &config_builder).await {
Ok(cookies) => {
}
Err(e) => {
eprintln!("The login was unsuccessful: {}", e);
}
};
}
Features
async-std-runtime: Use the async-std runtime instead of tokio (enabled by default)
tokio-runtime: Use the tokio runtime instead of async-std
debug: Enable debug logging
Contributing
I'm happy to accept any contributions, just consider reading the CONTRIBUTING.md guide first. to avoid waste waste our time on some unnecessary things.
the main keywords are: signed commits, conventional commits, no emojis, linear history, the PR shouldn't have more than tree commits most of the time
License
This project is licensed under ether the MIT license or the Unlicense license, you can choose which one you want.
This project is part of the pinterest-rs project
License: MIT OR Unlicense