============ erlang-oauth ============ What is this? ------------- An Erlang wrapper around the OAuth protocol. What is OAuth? -------------- An "open protocol to allow secure API authentication in a simple and standard method from desktop and web applications". See http://oauth.net/ for more info. What do I need? --------------- Erlang, and erlang-fmt (http://tfletcher.com/dev/erlang-fmt). The Makefile assumes that erlang-fmt is contained in the parent directory of this one, so you might want to edit the Makefile if you have it elsewhere. How do I use it? ---------------- The crypto and inets applications need to be running, and---as it's easy to forget---all the code needs to be compiled. A typical authentication flow would be similar to the following: ConsumerKey = "key", ConsumerSecret = "secret", SignatureMethod = "HMAC-SHA1", Consumer = oauth_consumer:new(ConsumerKey, ConsumerSecret, SignatureMethod), HttpResponse = oauth:get(RequestTokenURL, Consumer), RequestTokenPair = oauth_token_pair:new(HttpResponse), % If necessary, direct user to the Service Provider, % with RequestToken = element(1, RequestTokenPair). HttpResponse2 = oauth:get(AccessTokenURL, Consumer, RequestTokenPair), AccessTokenPair = oauth_token_pair:new(HttpResponse2), oauth:get(ProtectedResourceURL, Consumer, AccessTokenPair, ExtraParams). Calling oauth:get or oauth:post returns an HTTP response tuple, as returned from http:request/4. Type "make termie", or look at the oauth_termie module for a working example. Thanks Andy! Alternatively, you can use oauth_request:header/6 to generate an HTTP Authorization header, as described by http://oauth.net/core/1.0/#auth_header. This isn't (currently) integrated into oauth:get and oauth:post, so you would need to use http:request/4 directly in this case. Who can I contact if I have another question? --------------------------------------------- Tim Fletcher (http://tfletcher.com/).