2012-11-15 34 views
3

我的需求是擁有一個簡單的Web表單,它也可以讓人們上傳一些PDF文件。 我在想我可以做什麼(因爲上傳文件的大小和數量)是將此應用程序的後端綁定到我的保管箱帳戶或我的box.com帳戶。 這兩個服務都提供了類似的API來構建應用程序。Dropbox應用程序註定只能與一個Dropbox帳戶進行交互

但是他們都假設我想與人們的Dropbox/Box帳戶交互。 我想我想要的是相反的。人們會將文件上傳到網絡服務器,但我希望以編程方式將它們上傳到這兩種服務中的任意一種,但是在我的帳戶中,訪問權限和權限僅與我的帳戶相關。

用戶根本不需要與dropbox交互,他們不需要批准任何內容。 爲什麼看起來不可能以這種方式使用API​​來將文件添加到我擁有的同一個以前已知的Dropbox帳戶中?

+0

如果你想要很多文件的廉價存儲,像Amazon S3這樣的東西可能會更好。但使用Dropbox也應該工作 - 只需授權您的網站通過API訪問您的帳戶。然後在用戶上傳文件後將文件傳輸到Dropbox。 – Jason

+0

@Jason - 授權我的網站通過API訪問我的帳戶正是我所困惑的。我似乎只能授權我的應用程序在瀏覽器中使用Web應用程序與用戶進行交互。 – cbaltatescu

回答

4

雖然這不是預期的用途,但基本思路是手動爲該帳戶獲取授權的訪問令牌,並將其保存並重新用於所有未來呼叫。 (請務必不要撤銷它。)

它基本上與管理多個用戶的方式相同,只是每個用戶只重用相同的訪問令牌而不是他們自己的訪問令牌。

2

我已經用Facebook(FB)API在少數情況下類似的問題 - 哪裏還有什麼我想要的是有我的服務器聊FB,以便與同步我的帳戶 - 但API一般旨在用於訪問該網站的人的帳戶。

問題是,如果您嘗試連接客戶端,因爲API通常是打算的,您需要通過客戶端腳本公開您自己的私人登錄/證書......這顯然不是好。

我使用的技巧是用一系列方法來包裝API服務器端,這些方法允許您執行所需的特定功能,然後允許您的JS或服務器端綁定將這些方法調用爲異步。產生的流程圖如下所示:

------   ----------        ------- 
| UI | -> AJAX -> | Server | -> Async GET w/Credentials -> | API | 
------   ----------        ------- 

那麼你獲得的數據傳回在Server水平,並使其返回到UI作爲JSON - 瞧,你的UI沒有憑據 - 但仍然可以訪問你的Dropbox。

因此 - 對於您上傳文件的示例...用戶將文件發佈到您的網絡服務器。在該方法的服務器端處理程序上 - 簡單地取出發佈的二進制信息,將其形成一個新的API調用到您的投遞箱 - 驗證(如果您還沒有主動驗證會話) - 然後發佈。然後,您可以根據該呼叫的成功/失敗情況將信息返回給客戶端。

我希望這會有所幫助。 :)需要一些腳手架 - 但它是可能的!有信心!

相關問題