Skip to content
An Erlang OAuth 1.0 implementation
Erlang
Find file
Pull request Compare This branch is 42 commits behind tim:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
ebin
src
Emakefile
License.txt
Makefile
README.txt
THANKS.txt

README.txt

An Erlang OAuth implementation.

Quick start (client usage):

  $ make
  ...
  $ erl -pa ebin -s crypto -s inets
  ...
  1> Consumer = {"key", "secret", hmac_sha1}.
  ...
  2> RequestTokenURL = "http://term.ie/oauth/example/request_token.php".
  ...
  3> {ok, RequestTokenResponse} = oauth:get(RequestTokenURL, [], Consumer).
  ...
  4> RequestTokenParams = oauth:params_decode(RequestTokenResponse).
  ...
  5> RequestToken = oauth:token(RequestTokenParams).
  ...
  6> RequestTokenSecret = oauth:token_secret(RequestTokenParams).
  ...
  7> AccessTokenURL = "http://term.ie/oauth/example/access_token.php".
  ...
  8> {ok, AccessTokenResponse} = oauth:get(AccessTokenURL, [], Consumer, RequestToken, RequestTokenSecret).
  ...
  9> AccessTokenParams = oauth:params_decode(AccessTokenResponse).
  ...
  10> AccessToken = oauth:token(AccessTokenParams).
  ...
  11> AccessTokenSecret = oauth:token_secret(AccessTokenParams).
  ...
  12> URL = "http://term.ie/oauth/example/echo_api.php".
  ...
  13> {ok, Response} = oauth:get(URL, [{"hello", "world"}], Consumer, AccessToken, AccessTokenSecret).
  ...
  14> oauth:params_decode(Response).
  ...


Consumer credentials are represented as follows:

  {Key::string(), Secret::string(), plaintext}

  {Key::string(), Secret::string(), hmac_sha1}

  {Key::string(), RSAPrivateKeyPath::string(), rsa_sha1}  % client side

  {Key::string(), RSACertificatePath::string(), rsa_sha1}  % server side


The percent encoding/decoding implementations are based on those found in
the ibrowse library, written by Chandrashekhar Mullaparthi.

Example client/server code is at http://github.com/tim/erlang-oauth-examples.

Unit tests are at http://github.com/tim/erlang-oauth-tests.

Erlang/OTP R14B or greater is required for RSA-SHA1.
Something went wrong with that request. Please try again.