简体   繁体   中英

How do I respond to successful login with Dropbox API on iOS?

It checks whether the user is logged into dropbox when my app is launched. If they are, it continues with code relating to dropbox. If not, it shows them a login screen using [[DBSession sharedSession] link]; .

From the login screen comes this delegate, if authorization fails:

-(void)sessionDidReceiveAuthorizationFailure:(DBSession *)session userId:(NSString *)userId {
    [[DBSession sharedSession] link];
}

But there doesn't seem to be something for when authorization succeeds. How do I deal with this scenario? I need to start running the necessary code once they're linked with dropbox.

You handle successful login from the Dropbox API in the

-(BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url function

-(BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url {


    if ([[DBSession sharedSession] handleOpenURL:url]) {
        //Successfully Logged in to Dropbox
        return YES;
    }

    return NO;

}

As part of applicationDidFinishLaunching you could initiate the dropbox api you could do the following.

dispatch_async(dispatch_get_main_queue(), ^{  
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    DBSession* dbSession = [[[DBSession alloc] initWithAppKey:@"appKey" appSecret:@"appSecret" root:kDBRootAppFolder] autorelease];
    dbSession.delegate = self;  
    [DBSession setSharedSession:dbSession];  
    [[NSNotificationCenter defaultCenter] postNotificationName:kSharedSessionAvailability  object:[NSNumber numberWithBool:dbSession != nil ? YES : NO]];  
});

But normally you simply get your session and use it later via the restClient.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM