我正在为我的iOS应用程序添加Dropbox支持。使用官方的Dropbox API和教程online here我已经到了Dropbox需要进行身份验证的程度。下面的代码是按下按钮时认证的内容:
//MainViewController.m
....
@implementation CryptoMainViewController
.....
#pragma mark - Dropbox
- (void)didPressLink {
if (![[DBSession sharedSession] isLinked]) {
[[DBSession sharedSession] link];
}
}
但无论我如何更改代码,我把它放在哪里或者我将它链接到哪个按钮,都不会发生任何事情。使用断点我发现该方法事实上已被触发。我甚至把它放在IBAction中,但这给出了相同的结果。我究竟做错了什么? 如何让我的应用验证最终用户?
并且,经过身份验证后,如何将NSString保存到用户的Dropbox?
如果这完全错了,那么我在哪里可以找到有关如何正确执行此操作的资源?
整个教程,所有文档,api等都可用here。
答案 0 :(得分:5)
我有同样的问题;原因是我没有设置共享的Dropbox会话,例如
DBSession* dbSession = [[[DBSession alloc] initWithAppKey: @"your_app_key"
appSecret: @"your_app_secret"
root: kDBRootAppFolder] autorelease];
[DBSession setSharedSession: dbSession];
一旦调用该链接就可以了。
答案 1 :(得分:1)
这个答案可能会迟到,但我猜你之前已经关联了你的应用,并希望再次这样做。您可以再次进行链接过程的唯一方法是运行以下代码: [[DBSession sharedSession] unlinkAll]; 您可以将它放在viewDidLoad中。当您再调用didPressLink时:应用程序应该打开Dropbox应用程序(如果可用),safari或应用程序窗口,要求您允许访问您的Dropbox。如果没有发生这种情况,则问题出在其他地方。希望这有帮助
答案 2 :(得分:0)
您的视图是否实现了<DBLoginControllerDelegate>
?
如果是这样,请链接Dropbox,如下所示:
DBLoginController* controller = [[DBLoginController new] autorelease];
controller.delegate = self;
[controller presentFromController:self];