Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
* 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.