2012-08-23 15 views
6

Ich verwende das Dropbox SDK und ich habe es so eingerichtet, dass die App nur auf den Ordner/Apps/MyAPP zugreifen kann. Ich habe es getestet und den Ordner online gelöscht. Jetzt, wenn ich in der App bin, anstatt zu fragen, Dropbox neu zu verknüpfen, gibt es mir einen Fehler 401. Ich weiß nicht, warum die Ansicht nicht angezeigt wird. Es funktionierte, bevor ich den Ordner löschte (Verknüpfung der App online aufheben). Vielen Dank im Voraus.Dropbox SDK 401 Fehler

PageFlipper [66893: c07] [WARNUNG] DropboxSDK: Fehler machen Anfrage an /1/Metadaten/Sandbox - Token ungültig ist. 2012-08-23 03: 10: 12.920 PageFlipper [66893: c07] Fehler beim Laden der Metadaten: Fehler Domain = Dropbox.com Code = 401 "Der Vorgang konnte nicht abgeschlossen werden. (Dropbox.com Fehler 401.)" Userinfo = 0x23263fe0 {path/=, error = Token ist ungültig.}

-(IBAction)addDropBox:(id)sender{ 
    if (![[DBSession sharedSession] isLinked]) { 
     [[DBSession sharedSession] linkFromController:[self parentViewController]]; 
    } 
    [[self restClient] loadMetadata:@"/"]; 
    restClient = nil; 
}; 

Antwort

0

ich das Problem, indem Sie den Code der folgenden gelöst.

[[DBSession sharedSession] linkFromController:(UINavigationController *)[[appDelegate window] rootViewController]]; 
11

Ich hatte das gleiche Problem. In meinem Fall war das Problem, dass ich den RestClient vor den Benutzer angeschlossen hatte. In diesem Fall ist die userId nicht gesetzt und das Token ist ungültig.

Mein Getter für restClient sieht nun wie folgt aus:

- (DBRestClient *)restClient 
{ 
    if (_restClient == nil) { 
     if ([[DBSession sharedSession].userIds count]) { 
      _restClient = [[DBRestClient alloc] initWithSession:[DBSession sharedSession]]; 
      _restClient.delegate = self; 
     } 
    } 

    return _restClient; 
}