Search code examples
objective-ciosauthenticationdropboxdropbox-api

Authenticating Dropbox in iOS


I am adding Dropbox support to my iOS application. Using the official Dropbox API and the tutorials online here I have gotten to the point where Dropbox needs to be authenticated. The code below is what is given to Authenticate when a button is pressed:

//MainViewController.m
....
@implementation CryptoMainViewController
.....
#pragma mark - Dropbox
- (void)didPressLink {
    if (![[DBSession sharedSession] isLinked]) {
        [[DBSession sharedSession] link];
    }
}

But no matter how I change the code, where I put it or what button I link it to, nothing will happen. Using breakpoints I've found that the method does in-fact get triggered. I've even put it in an IBAction, but this gives the same result. What am I doing wrong? How can I get my app to authenticate the end-user?

And, once authenticated, How can I save an NSString to the user's Dropbox?

If this is just totally wrong, then where can I go to find resources on how to do this properly?

The whole tutorial, all of the documentation, api, etc. is available here.


Solution

  • I had the same problem; the reason was that I hadn't set the shared Dropbox session, e.g.

    DBSession* dbSession = [[[DBSession alloc] initWithAppKey: @"your_app_key"
                                               appSecret: @"your_app_secret"
                                               root: kDBRootAppFolder] autorelease];
    [DBSession setSharedSession: dbSession];
    

    Once that was called the link worked fine.