
com.dropbox.core.DbxAuthFinish Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sdk Show documentation
Show all versions of sdk Show documentation
A client library for Dropbox's HTTP-based "Core API".
The newest version!
package com.dropbox.core;
import com.dropbox.core.json.JsonExtractionException;
import com.dropbox.core.json.JsonExtractor;
import static com.dropbox.core.util.StringUtil.jq;
import com.fasterxml.jackson.core.JsonLocation;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import java.io.IOException;
/**
* When you successfully complete the authorization process, the Dropbox server returns
* this information to you.
*/
public final class DbxAuthFinish implements java.io.Serializable
{
public static final long serialVersionUID = 0;
/**
* An access token that can be used to make Dropbox API calls.
* Pass this in to the {@link DbxClient} constructor.
*/
public final String accessToken;
/**
* The Dropbox user ID of the user who just approved your app for access to
* their Dropbox account.
*/
public final String userId;
/**
* The state data you passed in to {@link DbxWebAuth#start}. If you didn't pass anything
* in, or you used {@link DbxWebAuthNoRedirect}, this will be {@code null}.
*/
public final String urlState;
/**
* @param accessToken {@link #accessToken}
* @param userId {@link #userId}
*/
public DbxAuthFinish(String accessToken, String userId, String urlState)
{
this.accessToken = accessToken;
this.userId = userId;
this.urlState = urlState;
}
/**
* For JSON parsing.
*/
public static final JsonExtractor Extractor = new JsonExtractor()
{
public DbxAuthFinish extract(JsonParser parser) throws IOException, JsonExtractionException
{
JsonLocation top = JsonExtractor.expectObjectStart(parser);
String accessToken = null;
String tokenType = null;
String userId = null;
while (parser.getCurrentToken() == JsonToken.FIELD_NAME) {
String fieldName = parser.getCurrentName();
JsonExtractor.nextToken(parser);
try {
if (fieldName.equals("token_type")) {
tokenType = BearerTokenTypeExtractor.extractField(parser, fieldName, tokenType);
}
else if (fieldName.equals("access_token")) {
accessToken = AccessTokenExtractor.extractField(parser, fieldName, accessToken);
}
else if (fieldName.equals("uid")) {
userId = JsonExtractor.StringExtractor.extractField(parser, fieldName, userId);
}
else {
// Unknown field. Skip over it.
JsonExtractor.skipValue(parser);
}
}
catch (JsonExtractionException ex) {
throw ex.addFieldContext(fieldName);
}
}
JsonExtractor.expectObjectEnd(parser);
if (tokenType == null) throw new JsonExtractionException("missing field \"token_type\"", top);
if (accessToken == null) throw new JsonExtractionException("missing field \"access_token\"", top);
if (userId == null) throw new JsonExtractionException("missing field \"uid\"", top);
return new DbxAuthFinish(accessToken, userId, null);
}
};
public static final JsonExtractor BearerTokenTypeExtractor = new JsonExtractor()
{
@Override
public String extract(JsonParser parser) throws IOException, JsonExtractionException
{
try {
String v = parser.getText();
if (!v.equals("Bearer") && !v.equals("bearer")) {
throw new JsonExtractionException("expecting \"Bearer\": got " + jq(v), parser.getTokenLocation());
}
parser.nextToken();
return v;
}
catch (JsonParseException ex) {
throw JsonExtractionException.fromJackson(ex);
}
}
};
public static final JsonExtractor AccessTokenExtractor = new JsonExtractor()
{
@Override
public String extract(JsonParser parser) throws IOException, JsonExtractionException
{
try {
String v = parser.getText();
String error = DbxAppInfo.getTokenPartError(v);
if (error != null) {
throw new JsonExtractionException(error, parser.getTokenLocation());
}
parser.nextToken();
return v;
}
catch (JsonParseException ex) {
throw JsonExtractionException.fromJackson(ex);
}
}
};
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy