2015-03-02 91 views
0

我想知道是否可以在沒有oauth的情況下訪問(至少讀取)到私人Dropbox文件夾。如何閱讀閱讀/獲取Dropbox文件

案例是,我有一個Heroku應用程序需要訪問給定的私人Dropbox文件夾中的文件和文件夾。

查看文檔,唯一的方法是通過oAuth(https://www.dropbox.com/developers/core/start/android)。然而,我的Heroku應用程序需要訪問給定的Dropbox文件夾的文件和文件夾,應用程序密鑰和應用程序的祕密足以做到這一點?

什麼是正確的方法?

@Test 
     public void test() throws IOException, DbxException { 
      FileOutputStream outputStream = new FileOutputStream("test.txt"); 
      DbxRequestConfig config = new DbxRequestConfig("mydbapp/1.0", Locale.getDefault().toString()); 
      DbxClient client = new DbxClient(config, Constants.accessToken); 
      System.out.println("Linked account: " + client.getAccountInfo().displayName); 
      DbxEntry.File md = null; 
      try { 
       List<DbxEntry.File> revs = client.getRevisions("/test.txt"); 
       md = client.getFile("/test.txt", null, outputStream); 
      } catch (DbxException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } finally { 
       outputStream.close(); 
      } 
      assertNotNull(md); 
} 

我一直在試圖調試這段代碼,但它一直拋出「找不到」的錯誤,即使這個文件在帳戶保管箱文件夾中。這段代碼中可能會丟失什麼?

+0

訪問Dropbox API的唯一方法是使用OAuth。它看起來像你的代碼做得很好,假設'Constants.accessToken'是你試圖訪問的帳戶的有效訪問令牌。如果'client.getAccountInfo()'調用成功,則代碼的OAuth部分是正確的。你能提供你得到的實際錯誤信息和堆棧跟蹤嗎?我假設你只是沒有在'/ test.txt'路徑中的文件。嘗試在「/」上調用元數據以查看內容。 – smarx 2015-03-02 21:15:04

+0

@smarx感謝您的答覆,實際上使用生成的令牌,無需任何用戶干預,我的代碼可以訪問drobox文件(請參閱下面的答案) – xybrek 2015-03-02 21:53:25

回答

0

沒有客戶端驗證(或至少我的意思是用戶干預的情況)是可以訪問Dropbox的文件/使用「生成的令牌」

這段代碼的問題數據,是不實際的代碼,但隨着Dropbox應用程序的創建方式。這些文件存儲在根保管箱路徑中,但代碼正在尋找/Apps/{appName}/文件夾路徑中的文件。