Загрузка, сохранение и использование данных аутентификации в Box Android API
Недавно я пытался внедрить Box в мое приложение для Android. Я знаю, как запустить действие аутентификации и получить готовый к работе объект BoxAndroidClient, но я не знаю, как сохранить токены (SharedPreferences?), Загрузить их, а затем выполнить аутентификацию с использованием загруженных токенов, чтобы у пользователя не было входить в свою учетную запись box каждый раз, когда он хотел бы получить доступ к своим файлам в облаке.
Я попытался обновить ранее сохраненные токены (из-за исключения, которое сообщало мне, что мой AccessToken неверен).
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)));
И у меня есть еще одно исключение:
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)
Поскольку я не нашел ни одного учебного пособия о том, как правильно выполнять аутентификацию в Java (примеры, включенные в SDK, не охватывают какой-либо метод сохранения токенов), кто-нибудь может дать хороший пример для этого?