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

Tim Fletcher 9da32c00ea Markdown changelog 13 лет назад
ebin 994f3d497c Bump version to 1.2.2 13 лет назад
src 89ebe2cf9a http_uri:parse(URI) now returns {ok,{Scheme,...}} in R15B 13 лет назад
CHANGELOG.md 9da32c00ea Markdown changelog 13 лет назад
CHANGELOG.txt f332b77371 Add a changelog 13 лет назад
Emakefile be1aa9646d Move compile options to Emakefile; simplify Makefile. 15 лет назад
License.txt dcbf2273d9 Update copyright date. 14 лет назад
Makefile 24a39a2700 Move .app file to ebin; update Makefile. 14 лет назад
README.md a31d77d1a6 Markdown README 13 лет назад
README.txt e32d49094b Update README 14 лет назад
THANKS.txt e2c5524032 Update THANKS 13 лет назад

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

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