Skip to content

Latest commit

 

History

History
107 lines (73 loc) · 2.31 KB

README.md

File metadata and controls

107 lines (73 loc) · 2.31 KB

jopbox

jopbox is a Clojure library for working with the Dropbox API.

Demo

joplet a small demo app using this library. It is easily deployable to Heroku. You can find the instructions to do that in the joplet repository.

Installation

Add this to your project.clj's dependencies:

:dependencies [jopbox "0.2.0"]

Usage

Require jopbox from the REPL:

(require '[jopbox.client :refer :all])

And before doing anything, you'll want to create a new Dropbox app here.

Authorization and Authentication

(def consumer (make-consumer API-KEY API-SECRET))
(def request-token (fetch-request-token consumer <callback-uri>))

Now, get the authorization URL:

(authorization-url consumer request-token)
;=> Visit the URL that this returns on your browser.

Then, get the access token response

(def access-token-response (fetch-access-token-response consumer request-token))

If you're using this with a web app, you probably want to use a callback URI to fetch the token response.

API methods

See Dropbox's API Reference for more information on these methods.

Account Info /account/info

(account-info consumer access-token-response)

File Metadata /metadata

(metadata consumer access-token-response :sandbox "video.flv")

Delta /delta

(delta consumer access-token-response <cursor>)

Media /media

(media consumer access-token-response :sandbox "video.flv")

Get File /files(GET)

(get-file consumer access-token-response :sandbox "foo.txt")
;; This works fine with plaintext files, but if you're dealing with something else you probably want to use /media.

Upload file /files_put

(upload-file consumer access-token-response :sandbox "foo.mp3" "/path/to/foo.mp3")

Running Tests

Create a file test/jopbox/dropbox_keys.clj with the following content:

(def dropbox-key "YOUR-API-KEY")
(def dropbox-secret "YOUR-API-SECRET")

Then, run lein test.

License

Copyright © 2013 Samrat Man Singh

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