Giter Club home page Giter Club logo

dropbox-sdk-java's Introduction

Dropbox Core SDK for Java 6+

A Java library to access Dropbox's HTTP-based Core API.

License: MIT

This is for web applications. If you want to use Dropbox's API from Android, try the Dropbox Core SDK for Android.

Javadoc.

Setup

If you're using Maven, then edit your project's "pom.xml" and add this to the <dependencies> section:

<dependency>
    <groupId>com.dropbox.core</groupId>
    <artifactId>dropbox-core-sdk</artifactId>
    <version>[1.7,1.8)</version>
</dependency>

If you aren't using Maven, here are the JARs you need:

Get a Dropbox API key

You need a Dropbox API key to make API requests.

Save the API key to a JSON file called, say, "test.app":

{
  "key": "Your Dropbox API app key",
  "secret": "Your Dropbox API app secret"
}

Using the Dropbox API

Before your app can access a Dropbox user's files, the user must authorize your application using OAuth 2. Successfully completing this authorization flow gives you an access token for the user's Dropbox account, which grants you the ability to make Dropbox API calls to access their files.

Once you have an access token, create a DbxClient and start making API calls.

You only need to perform the authorization process once per user. Once you have an access token for a user, save it somewhere persistent, like in a database. The next time that user visits your app's, you can skip the authorization process and go straight to creating a DbxClient and making API calls.

Running the examples

Prerequisites: Apache Maven

  1. Download this repository.
  2. Save your Dropbox API key in a file called "test.app". See: Get a Dropbox API key, above.
  3. mvn install
  4. To compile all the examples: mvn -f examples/pom.xml compile
  5. To compile just one example: mvn -f examples/<example-name>/pom.xml compile.

authorize

This examples runs through the OAuth 2 authorization flow.

cd examples
./run authorize test.app test.auth

This produces a file named "test.auth" that has the access token. This file can be passed in to the other examples.

account-info

A trivial example that calls the /account/info API endpoint.

cd examples
./run account-info test.auth

(You must first generate "test.auth" using the "authorize" example above.)

upload-file

Uploads a file to Dropbox.

cd examples
./run upload-file test.auth local-path/file.txt /dropbox-path/file.txt

(You must first generate "test.auth" using the "authorize" example above.)

web-file-browser

A tiny web app that runs through the OAuth 2 authorization flow and then uses Dropbox API calls to let the user browse their Dropbox files.

Prerequisite: In the Dropbox API app configuration console, you need to add "http://localhost:5000/dropbox-auth-finish" to the list of allowed redirect URIs.

cd examples
./run web-file-browser 5000 test.app web-file-browser.db

Running the tests

  1. Run through the authorize example above to get a "test.auth" file.
  2. ./run-tests <path-to-test.auth>

Run ./run-tests with no arguments to see how to run individual tests.

Running the benchmarks

  1. mvn test-compile
  2. ./run-bench <fully-qualified-benchmark-class>

For example: ./run-bench com.dropbox.core.json.JsonDateReaderBench.ParseDropboxDate

Running the Checker Framework static analysis

mvn checker:check

Loading the project in IntelliJ 14

Assume "{sdk}" represents the top-level folder of this SDK.

  1. Click Import Project, select "{sdk}/pom.xml".
  2. You'll see the Import Project From Maven dialog.
    • Check Search for projects recursively
    • Check Keep project files in, set it to "{sdk}/intellij"
    • Check Import Maven projects automatically
    • Uncheck Use Maven output directories
    • Click Next
  3. Clicking Next on the rest of the dialogs.
  4. On the last dialog, you can change Project name if you want but make sure you set Project file location back to "{sdk}/intellij".

FAQ

When I use the bundle JAR with some OSGi containers within an OSGi subsystem, I get a "Missing required capability" error.

The JAR's manifest has the following line:

Require-Capability: osgi.ee;filter="(&(osgi.ee=JavaSE)(version=1.6))"

OSGi containers running on Java 1.6 or above should provide this capability. Unfortunately, some OSGi containers don't do this correctly and will reject the bundle JAR in the OSGi subsystem context.

As a workaround, you can build your own version of the JAR that omits the "osgi.ee" capability by running:

mvn clean
mvn package -Dosgi.bnd.noee=true

(This is equivalent to passing the "-noee" option to the OSGi "bnd" tool.)

Another workaround is to tell your OSGi container to provide that requirement: StackOverflow answer.

dropbox-sdk-java's People

Contributors

andrioli avatar cakoose avatar jefflub avatar manuelh9r avatar pcj avatar richardtitze avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.