twapi/
oauth1.rs

1//! User Authentication OAuth1
2use super::TwapiError;
3
4/// OAuth requet token
5/// Return oauth_token, oauth_token_secret, uri
6pub async fn request_token(
7    consumer_key: &str,
8    consumer_secret: &str,
9    oauth_callback: &str,
10    x_auth_access_type: Option<&str>,
11) -> Result<(String, String, String), TwapiError> {
12    let map = twapi_reqwest::oauth::request_token(
13        consumer_key,
14        consumer_secret,
15        oauth_callback,
16        x_auth_access_type,
17    )
18    .await?;
19    let oauth_token = match map.get("oauth_token") {
20        Some(oauth_token) => oauth_token,
21        None => {
22            return Err(TwapiError::NotExists);
23        }
24    };
25    let oauth_token_secret = match map.get("oauth_token_secret") {
26        Some(oauth_token_secret) => oauth_token_secret,
27        None => {
28            return Err(TwapiError::NotExists);
29        }
30    };
31    let uri = format!(
32        "http://api.twitter.com/oauth/authorize?oauth_token={}",
33        oauth_token
34    );
35
36    Ok((oauth_token.to_string(), oauth_token_secret.to_string(), uri))
37}
38
39/// OAuth access token
40/// Return oauth_token, oauth_token_secret, user_id, screen_name
41pub async fn access_token(
42    consumer_key: &str,
43    consumer_secret: &str,
44    oauth_token: &str,
45    oauth_token_secret: &str,
46    oauth_verifier: &str,
47) -> Result<(String, String, String, String), TwapiError> {
48    let map = twapi_reqwest::oauth::access_token(
49        consumer_key,
50        consumer_secret,
51        oauth_token,
52        oauth_token_secret,
53        oauth_verifier,
54    )
55    .await?;
56    let oauth_token = match map.get("oauth_token") {
57        Some(oauth_token) => oauth_token,
58        None => {
59            return Err(TwapiError::NotExists);
60        }
61    };
62    let oauth_token_secret = match map.get("oauth_token_secret") {
63        Some(oauth_token) => oauth_token,
64        None => {
65            return Err(TwapiError::NotExists);
66        }
67    };
68    let user_id = match map.get("user_id") {
69        Some(oauth_token) => oauth_token,
70        None => {
71            return Err(TwapiError::NotExists);
72        }
73    };
74    let screen_name = match map.get("screen_name") {
75        Some(oauth_token) => oauth_token,
76        None => {
77            return Err(TwapiError::NotExists);
78        }
79    };
80    Ok((oauth_token.to_string(), oauth_token_secret.to_string(), user_id.to_string(), screen_name.to_string()))
81}