2014-12-19 75 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; 
}