At thredUP, we recently started using dropbox to do more than just store and share files among employees. We've now integrated it with a couple of our applications so that certain data sets get archived there. We used to just send them by email if they were small enough or save them to a server and then download them manually. Now, with dropbox, they get dropped in a shared folder and the people that need access, have it.
Implementing this integration had a couple hiccups along the way and I want to share how we did it in this post.
First, we used the dropbox-sdk gem (https://www.dropbox.com/developers/core/sdks/ruby) to handle most of the heavy lifting but you still need to implement a workflow to gain authorization with dropbox.
We wanted to be able to authorize a conneection and persist the session to the database so we could restore it and work with dropbox without having to reauthorize again. To accomplish this, we wrote a model for storing a users authorization session information:
As you can see, it's a fairly compact class. Here's how to use it:
With this wrapper class it's really that simple. You could always implement a simple scaffold for this class and customize it to handle the auth workflow through the web browser - we don't add accounts that often, so didn't take this extra step.
A few more client use tips:
Hope this helps you integrate with Dropbox in your own applications!