Crate oauth1_request
source ·Expand description
Yet yet yet another OAuth 1 client library.
Usage
Using #[derive]
(recommended)
Add this to your Cargo.toml
:
oauth1-request-derive = "0.2"
Creating a GET
request:
extern crate oauth1_request as oauth;
#[macro_use]
extern crate oauth1_request_derive;
use oauth::OAuth1Authorize;
#[derive(OAuth1Authorize)]
struct SearchComments<'a> {
article_id: u64,
text: &'a str,
}
let req = SearchComments {
article_id: 123456789,
text: "Rust",
};
let oauth::Request { authorization, data } = req.authorize(
"GET",
"https://example.com/api/v1/comments/search.json",
"consumer_key",
"consumer_secret",
"token_secret",
oauth::HmacSha1,
&*oauth::Options::new()
.token("token")
.nonce("nonce")
.timestamp(9999999999),
);
assert_eq!(
authorization,
"OAuth \
oauth_consumer_key=\"consumer_key\",\
oauth_nonce=\"nonce\",\
oauth_signature_method=\"HMAC-SHA1\",\
oauth_timestamp=\"9999999999\",\
oauth_token=\"token\",\
oauth_signature=\"kAkbCLL7obDyzdjz3uJoWSwiLqU%3D\"",
);
assert_eq!(
data,
"https://example.com/api/v1/comments/search.json?article_id=123456789&text=Rust",
);
Creating an x-www-form-urlencoded
request:
#[derive(OAuth1Authorize)]
struct CreateComment<'a> {
article_id: u64,
text: &'a str,
}
let req = CreateComment {
article_id: 123456789,
text: "Rust lang is great 🦀",
};
// Use `authorize_form` method to create an `x-www-form-urlencoded` string.
let oauth::Request { authorization, data } = req.authorize_form(
"POST",
"https://example.com/api/v1/comments/create.json",
"consumer_key",
"consumer_secret",
"token_secret",
oauth::HmacSha1,
&*oauth::Options::new()
.token("token")
.nonce("nonce")
.timestamp(9999999999),
);
assert_eq!(
authorization,
"OAuth \
oauth_consumer_key=\"consumer_key\",\
oauth_nonce=\"nonce\",\
oauth_signature_method=\"HMAC-SHA1\",\
oauth_timestamp=\"9999999999\",\
oauth_token=\"token\",\
oauth_signature=\"bbhEIrjfisdDBrZkKnEXKa4ykE4%3D\"",
);
assert_eq!(
data,
"article_id=123456789&text=Rust%20lang%20is%20great%20%F0%9F%A6%80",
);
See OAuth1Authorize
for more details on the custom derive macro.
Using Signer
See Signer
.
Re-exports
Modules
Signature methods (RFC 5849 section 3.4.).
Structs
Represents the state of a
Signer
before oauth_parameters
method is called.Optional OAuth parameters.
Represents the state of a
Signer
after oauth_parameters
method is called.A pair of an OAuth header and its corresponding query/form string.
A type that creates a signed
Request
.Traits
Types that can be made into a
Request
using given credentials.Type Definitions
A version of
Signer
that uses the HMAC-SHA1
signature method.A version of
Signer
that uses the PLAINTEXT
signature method.