Autenticación de Dropbox en iOS

Estoy agregando soporte para Dropbox a mi aplicación iOS. Usando la API oficial de Dropbox y los tutoriales en línea , he llegado al punto en que se necesita autenticar Dropbox. El código a continuación es lo que se da a Autenticar cuando se presiona un button:

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

Pero no importa cómo cambie el código, dónde lo coloco o qué button lo vinculo, nada sucederá. Usando puntos de interrupción, he descubierto que el método realmente se desencadena. Incluso lo puse en una IBAction, pero esto da el mismo resultado. ¿Qué estoy haciendo mal? ¿Cómo puedo get mi aplicación para autenticar al usuario final?

Y, una vez autenticado, ¿cómo puedo save un NSString en el Dropbox del usuario?

Si esto es totalmente erróneo, entonces, ¿a dónde puedo ir para encontrar resources sobre cómo hacer esto correctamente?

El tutorial completo, toda la documentation, api, etc. está disponible aquí .

Yo tuve el mismo problema; La razón fue que no había configurado la session compartida de Dropbox, por ej.

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

Una vez que se llamó, el enlace funcionó bien.

esta respuesta puede llegar tarde, pero supongo que ya has vinculado tu aplicación antes y quieres volver a hacerlo. La única forma en que puede hacer que el process de enlace tenga lugar nuevamente es si ejecuta el siguiente código: [[DBSession shanetworkingSession] unlinkTll]; Puede ubicarlo en su vista. Cuando llame a didPressLink: la aplicación debe abrir la aplicación dropbox (si está disponible), Safari o una window de la aplicación que le solicite su permiso para acceder a su dropbox. Si esto no sucede, entonces el problema está en otro lado. Espero que esto ayude

¿Su vista implementa el <DBLoginControllerDelegate> ?

Si es así, enlace a Dropbox así:

 DBLoginController* controller = [[DBLoginController new] autorelease]; controller.delegate = self; [controller presentFromController:self];