Here's our Java SDK for API v2, which helps you easily integrate Dropbox into your Java app.
Dropbox for Java - Dropbox for Java SDK is open source on GitHub.
Several examples and snippets can be found in the examples directory.
web-file-browser - Web app that demonstrates how to authenticate users and then display the files and folders in a user's Dropbox. android - Android app that demonstrates how to authenticate users, navigate through a user's Dropbox, and upload/download files into an user's Dropbox.
To get started with Dropbox for Java, we recommend you add the SDK to your project using Maven.
To install the Dropbox SDK for Java, add the SDK by editing your project's "pom.xml" and adding this to the <dependencies> section.
<dependency>
<groupId>com.dropbox.core</groupId>
<artifactId>dropbox-core-sdk</artifactId>
<version>2.1.1</version>
</dependency>
If you are using Gradle, then add this to the dependencies section of your "build.gradle" file.
dependencies {
// ...
compile 'com.dropbox.core:dropbox-core-sdk:2.1.1'
}
That's it! Now you're ready to get started with the tutorial.
A good way to start using the Java SDK is to follow this quick tutorial. Just make sure you have the the Java SDK installed first!
To use the Dropbox API, you'll need to register a new app in the App Console. Select Dropbox API app and choose your app's permission. You'll need to use the app key created with this app to access API v2.
In order to make calls to the API, you'll need an instance of the Dropbox object. To instantiate, pass in the access token for the account you want to link. (Tip: You can generate an access token for your own account through the App Console).
import com.dropbox.core.DbxRequestConfig;
import com.dropbox.core.v2.DbxClientV2;
public class Main {
private static final String ACCESS_TOKEN = "<ACCESS TOKEN>";
public static void main(String args[]) throws DbxException {
// Create Dropbox client
DbxRequestConfig config = new DbxRequestConfig("dropbox/java-tutorial", "en_US");
DbxClientV2 client = new DbxClientV2(config, ACCESS_TOKEN);
}
}
Test it out to make sure you've linked the right account:
// Get current account info FullAccount account = client.users().getCurrentAccount(); System.out.println(account.getName().getDisplayName());
You can use the Dropbox object you instantiated above to make API calls. Try out a request to list the contents of a folder.
// Get files and folder metadata from Dropbox root directory
ListFolderResult result = client.files().listFolder("");
while (true) {
for (Metadata metadata : result.getEntries()) {
System.out.println(metadata.getPathLower());
}
if (!result.getHasMore()) {
break;
}
result = client.files().listFolderContinue(result.getCursor());
}
Try uploading a file to your Dropbox.
// Upload "test.txt" to Dropbox
try (InputStream in = new FileInputStream("test.txt")) {
FileMetadata metadata = client.files().uploadBuilder("/test.txt")
.uploadAndFinish(in);
}
import com.dropbox.core.DbxException;
import com.dropbox.core.DbxRequestConfig;
import com.dropbox.core.v2.DbxClientV2;
import com.dropbox.core.v2.files.FileMetadata;
import com.dropbox.core.v2.files.ListFolderResult;
import com.dropbox.core.v2.files.Metadata;
import com.dropbox.core.v2.users.FullAccount;
import java.util.List;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.IOException;
public class Main {
private static final String ACCESS_TOKEN = "<ACCESS TOKEN>";
public static void main(String args[]) throws DbxException, IOException {
// Create Dropbox client
DbxRequestConfig config = new DbxRequestConfig("dropbox/java-tutorial", "en_US");
DbxClientV2 client = new DbxClientV2(config, ACCESS_TOKEN);
// Get current account info
FullAccount account = client.users().getCurrentAccount();
System.out.println(account.getName().getDisplayName());
// Get files and folder metadata from Dropbox root directory
ListFolderResult result = client.files().listFolder("");
while (true) {
for (Metadata metadata : result.getEntries()) {
System.out.println(metadata.getPathLower());
}
if (!result.getHasMore()) {
break;
}
result = client.files().listFolderContinue(result.getCursor());
}
// Upload "test.txt" to Dropbox
try (InputStream in = new FileInputStream("test.txt")) {
FileMetadata metadata = client.files().uploadBuilder("/test.txt")
.uploadAndFinish(in);
}
}
}
Here's the full documentation for the Java SDK.