zendesk/dropbox-api is an open-source project on GitHub with 361 stars, written primarily in Ruby. Dropbox API Ruby Client
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
To deliver a more Rubyesque experience when using the Dropbox API.
Current state:
First release, whole API covered.
Important!!!
From version 0.2.0, Dropbox::API::File#delete and Dropbox::API::Dir#deleteare gone!!
The reason is that it's based on Hashie::Mash and was screwing Hash#delete.
It is replaced with Dropbox::API::File#destroy and Dropbox::API::Dir#destroy.
Installation
Dropbox::API is available on RubyGems, so:
gem install dropbox-api
Or in your Gemfile:
gem "dropbox-api"
Configuration
In order to use this client, you need to have an app created on https://www.dropbox.com/developers/apps.
Once you have it, put this configuration somewhere in your code, before you start working with the client.
Dropbox::API::Config.app_key = YOUR_APP_KEY
Dropbox::API::Config.app_secret = YOUR_APP_SECRET
Dropbox::API::Config.mode = "sandbox" # if you have a single-directory app
# Dropbox::API::Config.mode = "dropbox" # if your app has access to the whole dropbox
Dropbox::API::Client
The client is the base for all communication with the API and wraps around almost all calls
available in the API.
Web-based Authorization
In order to create a Dropbox::API::Client object, you need to have the configuration set up for OAuth.
Second thing you need is to have the user authorize your app using OAuth. Here's a short intro
on how to do this:
consumer = Dropbox::API::OAuth.consumer(:authorize)
request_token = consumer.get_request_token
# Store the token and secret so after redirecting we have the same request token
session[:token] = request_token.token
session[:token_secret] = request_token.secret
request_token.authorize_url(:oauth_callback => 'http://yoursite.com/callback')
# Here the user goes to Dropbox, authorizes the app and is redirected
# This would be typically run in a Rails controller
hash = { oauth_token: session[:token], oauth_token_secret: session[:token_secret]}
request_token = OAuth::RequestToken.from_hash(consumer, hash)
oauth_verifier = params[:oauth_verifier]
result = request_token.get_access_token(:oauth_verifier => oauth_verifier)
Now that you have the oauth token and secret, you can create a new instance of the Dropbox::API::Client, like this:
You will notice that you have a new rake task - dropbox:authorize
When you call this Rake task, it will ask you to provide the app key and app secret. Afterwards it will present you with an authorize url on Dropbox.
Simply go to that url, authorize the app, then press enter in the console.
The rake task will output valid ruby code which you can use to create a client.
What differs this from the Dropbox Ruby SDK?
A few things:
It's using the ruby oauth gem, instead of reinventing the wheel and implementing OAuth communication
It treats files and directories as Ruby objects with appropriate classes, on which you can perform operations
Consider the following example which takes all files with names like 'test.txt' and copies them with a suffix '.old'
This is how it would look using the SDK:
# Because you need the session with the right access token, you need to create one instance per user
@session = DropboxSession.new(APP_TOKEN, APP_SECRET)
@session.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
@client = DropboxClient.new(@session, :app_folder)
# The result is a hash, so we need to call a method on the client, supplying the right key from the hash
@client.search('/', 'test.txt').each do |hash|
@client.file_copy(hash['path'], hash['path'] + ".old")
end
With Dropbox::API, you can clean it up, first you put the app token and secret in a config or initializer file:
And when you want to use it, just create a new client object with a specific access token and secret:
# The app token and secret are read from config, that's all you need to have a client ready for one user
@client = Dropbox::API::Client.new(:token => ACCESS_TOKEN, :secret => ACCESS_SECRET)
# The file is a Dropbox::API::File object, so you can call methods on it!
@client.search('test.txt').each do |file|
file.copy(file.path + ".old2")
end
What differs this from the dropbox gem?
Dropbox::API does not extend the Ruby primitives, like the dropbox gem:
TopGit's last sync did not record any GitHub topics for zendesk/dropbox-api. GitHub topics appear in the right sidebar of a repository page; that's the authoritative place to check.
How active is development on zendesk/dropbox-api?
The most recent commit recorded on zendesk/dropbox-api was 6.0 years ago, based on the GitHub push timestamp. The repository has 77 forks — one of the better signals of community interest.
How many stars does zendesk/dropbox-api have?
zendesk/dropbox-api has 361 GitHub stars — refresh the page for the live number, or check github.com/zendesk/dropbox-api. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What is zendesk/dropbox-api?
zendesk/dropbox-api (zendesk/dropbox-api) is a Ruby project on GitHub. From the project's own README: Dropbox API Ruby Client
What language is zendesk/dropbox-api written in?
zendesk/dropbox-api is written primarily in Ruby. GitHub's language field is based on the largest share of bytes in the default branch.
Read full README in the tab above.
Curious whether dropbox-api is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about dropbox-api.