mirror https://github.com/tim/erlang-oauth

Tim Fletcher 15b56b2b6d Add README note about rebar 12 years ago
ebin 9035960a0d Bump version to 1.3.0 12 years ago
src 84c88d4b56 Inline http_get/http_post/http_put helper functions 12 years ago
CHANGELOG.md 0950c1d946 Update changelog 12 years ago
Emakefile be1aa9646d Move compile options to Emakefile; simplify Makefile. 15 years ago
License.txt 06f0cbb24d Update license 13 years ago
Makefile 24a39a2700 Move .app file to ebin; update Makefile. 14 years ago
README.md 15b56b2b6d Add README note about rebar 12 years ago
THANKS.txt d1c3227bd7 Update thanks 12 years ago

README.md

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).
...

Dependency management with rebar

You can add erlang-oauth as a dependency to your rebar.config file like this:

{deps, [
  {oauth, ".*", {git, "https://github.com/tim/erlang-oauth.git"}}
]}.

Please consult the relevant rebar wiki page for more information.

Notes

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

Erlang/OTP R14B or greater is required for RSA-SHA1

The percent encoding/decoding implementations are based on ibrowse

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

Unit tests: github.com/tim/erlang-oauth-tests