Skip to content
This repository has been archived by the owner on Sep 2, 2022. It is now read-only.

launchscout/oauther

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OAuther Build Status

Library to authenticate with OAuth 1.0 protocol.

Installation

Add OAuther as a dependency to your mix.exs file:

defp deps do
  [{:oauther, "~> 1.0.1"}]
end

After you are done, run mix deps.get in your shell to fetch the dependencies.

Usage

Example below shows the use of hackney HTTP client for interacting with Twitter API. Protocol parameters are transmitted using the HTTP "Authorization" header field.

creds = OAuther.credentials(consumer_key: "dpf43f3p2l4k3l03", consumer_secret: "kd94hf93k423kf44", token: "nnch734d00sl2jdk", token_secret: "pfkkdhi9sl3r4s00")
# => %OAuther.Credentials{consumer_key: "dpf43f3p2l4k3l03",
# consumer_secret: "kd94hf93k423kf44", method: :hmac_sha1,
# token: "nnch734d00sl2jdk", token_secret: "pfkkdhi9sl3r4s00"}
params = OAuther.sign("post", "https://api.twitter.com/1.1/statuses/lookup.json", [{"id", 485086311205048320}], creds)
# => [{"oauth_signature", "10ZSs6eeWP+IfzElF5xFX/wsqnY="},
# {"oauth_consumer_key", "dpf43f3p2l4k3l03"},
# {"oauth_nonce", "M0vwJncX7T2GQwGXM4zFEa1mvL9RReLtkwwcBvlxG0A="},
# {"oauth_signature_method", "HMAC-SHA1"}, {"oauth_timestamp", 1404500030},
# {"oauth_version", "1.0"}, {"oauth_token", "nnch734d00sl2jdk"},
# {"id", 485086311205048320}]
{header, req_params} = OAuther.header(params)
# => {{"Authorization",
# "OAuth oauth_signature=\"10ZSs6eeWP%2BIfzElF5xFX%2FwsqnY%3D\", oauth_consumer_key=\"dpf43f3p2l4k3l03\", oauth_nonce=\"M0vwJncX7T2GQwGXM4zFEa1mvL9RReLtkwwcBvlxG0A%3D\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"1404500030\", oauth_version=\"1.0\", oauth_token=\"nnch734d00sl2jdk\""},
# [{"id", 485086311205048320}]}
:hackney.post("https://api.twitter.com/1.1/statuses/lookup.json", [header], {:form, req_params})
# => {:ok, 200, [...], #Reference<0.0.0.837>}

License

This software is licensed under the ISC license.

Packages

No packages published

Languages

  • Elixir 100.0%