2011-09-07 80 views
2

我不明白Dropbox API。iOS - Dropbox上的文件(用户登录)

我有一个CoreData的应用程序。用户可以选择是否要将SQlite文件上传到Dropbox。所以我做了一个设置选项卡,他可以取消/激活Dropbox同步并输入Dropbox的用户名和密码。 (是的,我知道Dropbox不想存储密码)。

如果用户更改任何内容,则应该上载SQLite文件。 所以我不需要ViewController的Dropbox功能。

我要的是像一个DropboxHelper类(NSObject的),有这样的函数

+ (void)uploadFile; 

在我的Dropbox帐户,我创建了一个应用程序。在我的AppDelegate中使用的应用密钥和应用密钥:

DBSession* session = [[[DBSession alloc] initWithConsumerKey:@"KEY"consumerSecret:@"SECRET"]autorelease]; <br> 
[DBSession setSharedSession:session]; 
[session release]; 

对于上传,我需要一个DBRestClient。在我的上传功能中,我测试会话是否被链接。如果没有,请登录用户:

if (![[DBSession sharedSession]isLinked]) { 
     [self.restClient loginWithEmail:@"USERNAME" 
         password:@"PASSWORD"; 
} 

但会话总是连接?!我必须像这样初始化DBRestClient:
restClient = [[DBRestClient alloc] initWithSession:[DBSession sharedSession]];

所以我不明白:

我需要的APP KEY和APP秘密使用API​​(因此它的API密钥)?

如果会话已经链接,如何登录用户? (我不希望使用DBLoginController进行登录)

如果我不初始化在AppDelegate中的会话,我怎么能初始化一个会话DBRestClient?

通常可以使用这样的API吗?没有Viewcontroller并使用NSObject?

回答

0

https://www.dropbox.com/developers/reference/bestpractice涵盖了这一点。

决不处理用户的登录名和密码信息。所有应用程序认证均使用通过Dropbox移动应用程序或网站交换的令牌以及认证教程中描述的方法完成。

另一种说法是,Dropbox不希望让用户使用密码信任应用程序开发人员。