Laden, Speichern und Verwenden von Authentifizierungsdaten in der Box Android API
Ich habe kürzlich versucht, Box in meine Android-App zu implementieren. Ich weiß, wie die Authentifizierungsaktivität gestartet und das BoxAndroidClient-Objekt für die Ausführung vorbereitet wird, aber ich habe keine Ahnung, wie Token (SharedPreferences?) Gespeichert, geladen und dann mit geladenen Token authentifiziert werden können, sodass der Benutzer keine hat Jedes Mal, wenn er auf seine Dateien in der Cloud zugreifen möchte, muss er sich in seinem Box-Konto anmelden.
Ich habe versucht, zuvor gespeicherte Token zu aktualisieren (aufgrund einer Ausnahme, die mir mitteilte, dass mein AccessToken nicht korrekt ist).
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)));
Und ich habe noch eine Ausnahme:
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)
Da ich keine Tutorials zur ordnungsgemäßen Durchführung des Auth-Teils in Java gefunden habe (die im SDK enthaltenen Beispiele decken keine Methode zum Speichern von Tokens ab), kann jemand ein gutes Beispiel dafür liefern?