Iftikhar Ali Ansari
Iftikhar Ali Ansari

Reputation: 1760

Dropbox sdk 401 Error getting for iPhone 5 but not in iPhone 6 for the same app in Xcode 6

I referred below url and try to solve the issue but still not able to fix the issue. Please help me out.

Dropbox SDK 401 Error

My app is working in iPhone 6 but while running the same app in iPhone 5 or 5s its showing the error:

[WARNING] DropboxSDK: error making request to /1/metadata/dropbox/ALLCREW.TXT - (401)           No auth method found.
2014-12-11 16:58:14.628 user_schedule_3[2331:112832] Error loading metadata: Error   Domain=dropbox.com Code=401 "The operation couldn’t be completed. (dropbox.com error   401.)" UserInfo=0x7fbb50d851c0 {path=/ALLCREW.TXT, error=No auth method found.}.

the code is given below: AppDelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:  (NSDictionary *)launchOptions
{
// Override point for customization after application launch.
DBSession *dbSession = [[DBSession alloc]
                        initWithAppKey:@"******h4xl9l4o"
                        appSecret:@"*******1ujh8"
                        root:kDBRootDropbox]; // either kDBRootAppFolder or   kDBRootDropbox
[DBSession setSharedSession:dbSession];
 // NSString *listValue = @"NAME";
 return YES;
}


  - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url
  sourceApplication:(NSString *)source annotation:(id)annotation {
   if ([[DBSession sharedSession] handleOpenURL:url]) {
    if ([[DBSession sharedSession] isLinked]) {
        NSLog(@"dropbox linked successfully!");
        [[NSNotificationCenter defaultCenter] postNotificationName:@"updateRoot"    object:nil];
        NSLog(@"came out");
        // At this point you can start making API calls
    } 
    return YES;
} 
// Add whatever other url handling code your app requires here
return NO;
 }

View controller:

   - (IBAction)didPressLink {
   if (![[DBSession sharedSession] isLinked]) {
    [[DBSession sharedSession] linkFromController:self];
    NSLog(@"did press link is linked");
 } else {
    NSLog(@"did press link is reached");
 }
 }



  NSString *filename = @"ALLCREW.TXT";
 NSString *localDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *localPath = [localDir stringByAppendingPathComponent:filename];
[self.restClient loadMetadata:@"/ALLCREW.TXT"];
//[self.restClient loadFile:@"/ALLCREW.TXT" intoPath:localPath];
NSString *contentOfFile = [NSString stringWithContentsOfFile:localPath encoding:NSUTF8StringEncoding error:nil];
NSArray *stringWithEnter = [contentOfFile componentsSeparatedByString: @"\n"];



- (void)restClient:(DBRestClient *)client
loadMetadataFailedWithError:(NSError *)error {
NSLog(@"Error loading metadata: %@", error);
}



- (void)restClient:(DBRestClient *)client loadedFile:(NSString *)localPath
   contentType:(NSString *)contentType metadata:(DBMetadata *)metadata {
NSLog(@"File loaded into path: %@", localPath);
[self getEntry ];
[self.tableView reloadData];
[spinner stopAnimating];
self.navigationItem.rightBarButtonItem.enabled = true;
}



- (void)restClient:(DBRestClient *)client loadFileFailedWithError:(NSError *)error {
NSLog(@"There was an error loading the file: %@", error);
}

Upvotes: 1

Views: 713

Answers (1)

Wrsford
Wrsford

Reputation: 237

I had the same issue. The solution ended up being that you had to add:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    if ([[DBSession sharedSession] handleOpenURL:url]) {
        if ([[DBSession sharedSession] isLinked]) {
            NSLog(@"App linked successfully!");
            // At this point you can start making API calls
        }
        return YES;
    }
    // Add whatever other url handling code your app requires here
    return NO;
}

You seem to have this code in:

 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url sourceApplication:(NSString *)source annotation:(id)annotation;

Moving the code to handleOpenURL: should fix the issue.

Also make sure to link Security.framework!

Source: http://innofied.com/integration-of-dropbox-in-ios-applications/

Upvotes: 2

Related Questions