2016-10-12 49 views
0

在我們的數據庫中,我們有一大堆來自過去幾年的身份驗證帳戶,其中有些早期被授予「完全訪問」權限,後來更改爲僅使用「應用程序文件夾」。知道access_token是用於應用程序文件夾還是完全訪問?

有什麼方法可以使用API​​來知道我們的access_token是在應用程序文件夾還是在整個帳戶中?

我們基本上想要將所有賬戶切換到應用程序文件夾,但只想改變那些需要它的人。我們必須移動文件夾,並在數據庫中存儲默認路徑。

查看完整的文檔後,我看不到任何提供這些信息,任何想法的東西?

+0

[供參考的交叉鏈接:https://www.dropboxforum.com/t5/API-support/Know-if-access-token-is-for-an-App- Folder-or-Full-Access/mp/190351] – Greg

回答

0

Dropbox API的設計使得權限級別(例如,應用程序文件夾vs完整的Dropbox)對應用程序是透明的,所以沒有一個好的/官方的編程方法來檢測任何給定訪問令牌的權限。不過,我們會考慮這個功能請求。

也就是說,API的某些功能只能用於完整的Dropbox應用程序,因此您可以使用這些功能來隱式檢測權限。例如,/2/sharing/list_folders端點僅適用於完整的Dropbox應用程序:

應用程序必須具有完整的Dropbox訪問權才能使用此端點。

這可能會爲你工作,但它仍然不是一個很好的解決方案,因爲在一個應用程序文件夾的應用程序的情況下,你會得到一個400錯誤使用純文本體(而不是一個很好的結構化409錯誤),因此您無法可靠地分辨出該錯誤與其他400錯誤之間的差異。要解決,你可以匹配對錯誤消息,但可能會改變當然是:在調用API函數「共享/ list_folders」

錯誤:您的API應用程序是一個「應用程序文件夾」的應用程序。不允許訪問此API函數。

+0

Thanks @Greg(again!) – spirie

+0

由於共享/ list_folders不返回任何錯誤我無法區分完全訪問/應用程序Folder.As作爲未來的參考我做了以下: – spirie

+0

我不知道我關注。根據我的答案,您應該可以使用/ 2/sharing/list_folders。對於應用程序文件夾應用程序,它將產生400錯誤,完整的Dropbox會產生200錯誤。 (我認爲你正在尋找特定於路由的409錯誤,而/ 2/sharing/list_folders的確沒有。) – Greg

0

感謝@Greg指引我在正確的方向。

因爲/sharing/list_folders不會返回任何錯誤我無法區分完整Dropbox &應用程序文件夾訪問之間的區別。

以供將來參考,來解決我查詢我做了以下內容:

  • 發送的API請求/sharing/get_folder_metadata與由shared_folder_id
  • 這將始終返回一個錯誤(除非你總算挑一個真實存在的shared_folder_id!)
  • 如果錯誤包含的響應(這將永遠是invalid_id),則具有的access_token全Dropbox的訪問
  • 如果錯誤是空的,那麼訪問_token只有應用程序文件夾訪問
相關問題