Cargar, guardar y utilizar datos de autenticación en la API de Android de Box.
Recientemente he estado tratando de implementar Box en mi aplicación de Android. Sé cómo iniciar la actividad de autenticación y preparar el objeto de BoxAndroidClient para operar en él, pero no tengo idea de cómo guardar tokens (SharedPreferences?), Cargarlos y autenticarlos usando tokens cargados, por lo que el usuario no tendrá para iniciar sesión en su cuenta de caja cada vez que quiera acceder a sus archivos en la nube.
Intenté actualizar tokens guardados anteriormente (debido a una excepción que me dijo que mi AccessToken es incorrecto).
BoxAndroidOAuthData data = new BoxAndroidOAuthData(new HashMap<String, Object>(){
private static final long serialVersionUID = 1L;
{
put(BoxAndroidOAuthData.FIELD_ACCESS_TOKEN, prefs.acc);
put(BoxAndroidOAuthData.FIELD_REFRESH_TOKEN, prefs.ref);
put(BoxAndroidOAuthData.FIELD_EXPIRES_IN, prefs.exp);
put(BoxAndroidOAuthData.FIELD_TOKEN_TYPE, prefs.typ);
}
});
data = new BoxAndroidOAuthData(client.getOAuthManager().refreshOAuth(BoxOAuthRequestObject.refreshOAuthRequestObject(data.getRefreshToken(), C, S)));
Y tengo otra excepción:
07-02 22:07:16.433: W/System.err(4684): com.box.restclientv2.exceptions.BoxRestException: Unexpected token (END_OBJECT), expected FIELD_NAME: missing property 'type' that is to contain type id (for class com.box.boxjavalibv2.dao.BoxServerError)
07-02 22:07:16.433: W/System.err(4684): at [Source: java.io.StringReader@b55b2c78; line: 1, column: 69]
07-02 22:07:16.433: W/System.err(4684): at com.box.restclientv2.responseparsers.DefaultBoxJSONResponseParser.parse(DefaultBoxJSONResponseParser.java:75)
07-02 22:07:16.433: W/System.err(4684): at com.box.boxjavalibv2.responseparsers.ErrorResponseParser.parse(ErrorResponseParser.java:31)
07-02 22:07:16.433: W/System.err(4684): at com.box.restclientv2.responses.DefaultBoxResponse.parseResponse(DefaultBoxResponse.java:51)
07-02 22:07:16.433: W/System.err(4684): at com.box.boxjavalibv2.resourcemanagers.BoxResourceManager.getResponseAndParse(BoxResourceManager.java:168)
07-02 22:07:16.433: W/System.err(4684): at com.box.boxjavalibv2.resourcemanagers.BoxResourceManager.getResponseAndParseAndTryCast(BoxResourceManager.java:143)
07-02 22:07:16.433: W/System.err(4684): at com.box.boxjavalibv2.resourcemanagers.BoxOAuthManager.refreshOAuth(BoxOAuthManager.java:68)
Como no he encontrado ningún tutorial sobre cómo realizar correctamente la parte de autenticación en Java (las muestras incluidas en el SDK no cubren ningún método para guardar tokens), ¿podría alguien proporcionar un buen ejemplo para eso?