[−][src]Crate oauth1_request
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; #[derive(OAuth1Authorize)] struct SearchComments<'a> { article_id: u64, text: &'a str, } let client = oauth::Credentials::new("consumer_key", "consumer_secret"); let token = oauth::Credentials::new("token", "token_secret"); let mut builder = oauth::Builder::new(client, oauth::HmacSha1); builder .token(token) .nonce("nonce") .timestamp(9999999999); let req = SearchComments { article_id: 123456789, text: "Rust", }; let oauth::Request { authorization, data, } = builder.get("https://example.com/api/v1/comments/search.json", &req); 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 `post_form` method to create an `x-www-form-urlencoded` request. let oauth::Request { authorization, data, } = builder.post_form("https://example.com/api/v1/comments/create.json", &req); 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
pub use signature_method::Plaintext; |
pub use signature_method::HmacSha1; |
Modules
signature_method | Signature methods (RFC 5849 section 3.4.). |
Structs
Builder | A builder for |
Credentials | The "credentials" pair defined in RFC 5849 section 1.1. |
NotReady | Represents the state of a |
Options | Optional OAuth parameters. |
Ready | Represents the state of a |
Request | A pair of an OAuth header and its corresponding query/form string. |
Signer | A type that creates a signed |
Traits
OAuth1Authorize | Types that can be made into a |
Type Definitions
HmacSha1Signer | A version of |
PlaintextSigner | A version of |