2014-12-19 81 views
1

我正在使用Dropbox SDK将文件保存到用户的Dropbox帐户。 当用户第一次点击“保存到保管箱”按钮时,弹出一个弹出窗口,用户需要登录到他们的保管箱账户。然后,我使用SDK提供的uploadFile方法将文件上传到他们的保管箱帐户。然而,第一次,它给我的错误:目标C - DropboxSDK:(401)身份验证失败 -

DropboxSDK: error making request to /1/files_put/dropbox/sampleFile.pdf - (401) Authentication failed 

当我关闭应用程序,然后再试一次,它成功地将文件上传。

什么可能导致应用程序行为如此奇怪?

+0

您使用的是Core SDK,对吗?您能否分享您的相关代码(例如授权码)?我假设示例应用程序适合你?如果是这样,请注意代码和示例之间的差异。 – smarx 2014-12-19 16:24:37

回答

0

我得到同样的错误,在你的应用程序中使用此代码希望这会帮助你。

if([[DBSession sharedSession] isLinked]) 
     { 
      //Do your drop box work here... 
     } 
     else 
     { 
      //If not linked then start linking here.. 
      [[DBSession sharedSession] linkFromController:self]; 
     } 
2

我有同样的问题,事实证明,我初始化我DBRestClient从viewDidLoad中像Dropbox的文件说,但由于Dropbox帐户链接之前发生的RESTClient实现设置不正确。

这可以很容易地修复重新初始化您的restClient,或者甚至更好地通过使用以下方式访问您的restClient。

-(DBRestClient*)restClient{ 
    if(_restClient == nil){ 
     _restClient = [[DBRestClient alloc] initWithSession:[DBSession sharedSession]]; 
     [_restClient setDelegate:self]; 
    } 
    return _restClient; 
}