A Clojure library to work with the Dropbox API
Clojure
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc
src/jopbox
test/jopbox
.gitignore
.hgignore
README.md
project.clj

README.md

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.