oauth-clj

Clojure OAuth library

Downloads
70K
Stars
95
Committers
9
  • oauth-clj

    [[https://clojars.org/oauth-clj][https://img.shields.io/clojars/v/oauth-clj.svg]] [[https://travis-ci.org/r0man/oauth-clj][https://travis-ci.org/r0man/oauth-clj.svg]] [[http://jarkeeper.com/r0man/oauth-clj][http://jarkeeper.com/r0man/oauth-clj/status.svg]] [[http://jarkeeper.com/r0man/oauth-clj][https://jarkeeper.com/r0man/oauth-clj/downloads.svg]]

    A [[https://github.com/dakrone/clj-http][clj-http]] compatible OAuth library for Clojure.

    [[http://1.bp.blogspot.com/_ZEQTZAmHudI/TGFfdi9vsQI/AAAAAAAABu0/y9IO0RfafN4/s400/OAuth-at-the-DMV.png]]

** Usage

#+BEGIN_SRC clojure (use 'oauth.twitter) #+END_SRC

Define your consumer key and secret.

#+BEGIN_SRC clojure (def consumer-key "qcz2O57srPsb5eZA2Jyw") (def consumer-secret "lfs5WjmIzPc3OlDNoHSfbxVBmPNmduTDq4rQHhNN7Q") #+END_SRC

Obtain a OAuth request token from Twitter to request user authorization.

#+BEGIN_SRC clojure (def request-token (oauth-request-token consumer-key consumer-secret)) ;;=> {:oauth-callback-confirmed "true", ;;=> :oauth-token-secret "1TPRuaqWZ9Y9viEdKbU4SQ2QsF5auLcMZaHOwYLK2ao", ;;=> :oauth-token "C6FCXGYUIutgTZZP1EAAx2nT0cv8QO15K4EbjbzOmBs"} #+END_SRC

Send the user to Twitter's authorization endpoint.

#+BEGIN_SRC clojure (oauth-authorize (:oauth-token request-token)) #+END_SRC

Parse the parameters in your oauth callback endpoint.

#+BEGIN_SRC clojure (def authorization {:oauth-verifier "ZCpKl8mgIUJmTkO8rfBeFotrKKd84igvytvLqlzo" :oauth-token "a5wQRcMsl5BMSPTmxZG5ER8OzMH6jdG4kX4uPtbC4Rw"}) #+END_SRC

Obtain the OAuth access token from Twitter.

#+BEGIN_SRC clojure (def access-token (oauth-access-token consumer-key (:oauth-token authorization) (:oauth-verifier authorization))) #+END_SRC

Make a clj-http OAuth client.

#+BEGIN_SRC clojure (def client (oauth-client consumer-key consumer-secret (:oauth-token access-token) (:oauth-token-secret access-token))) #+END_SRC

Post a Tweet ...

#+BEGIN_SRC clojure (client {:method :post :url "http://api.twitter.com/1/statuses/update.json" :body (str "status=setting%20up%20my%20twitter%20私のさえずりを設定する")}) #+END_SRC

** License

Copyright (C) 2012-2016 r0man

Distributed under the Eclipse Public License, the same as Clojure.

Package Rankings
Top 6.81% on Clojars.org