2013-01-16 82 views
1

我想運行自動化腳本以從服務器上的Dropbox文件夾中讀取文件。我開始研究那裏的Dropbox寶石,他們似乎都要求用戶通過打開瀏覽器來驗證會話。這對於自動化任務顯然沒有意義。有沒有辦法做到這一點,而不需要用戶手動實際打開瀏覽器?如何使用Ruby從遠程服務器上的Dropbox讀取文件?

+0

你爲什麼不公開文件,只是wget url並閱讀文件內容?順便說一句,你可以從ruby調用wget。 – sunnyrjuneja

+0

這是一家公司,所以公開是不可能的。 –

+0

你看過dropbox-api寶石嗎?這對OAuth有效,似乎並不要求您在瀏覽器中進行身份驗證:https://github.com/futuresimple/dropbox-api –

回答

0

他們都需要Web瀏覽器的原因是Dropbox使用OAuth v1。有一種解決方法,Dropbox API的精神可能不會100%。C.

我會從創建一個Dropbox帳戶開始,該帳戶將成爲您在腳本中使用的用戶帳戶。以該用戶的身份手動登錄並轉至應用的授權網址並批准。

在您的腳本中,您將創建一個使用該用戶標識和密碼登錄的HTTP連接。您需要將信息保留在描述用戶會話的響應中。使用會話信息創建授權URL的第二個HTTP連接。由於該應用已獲得授權,因此您只需從重定向網址捕獲會話令牌即可。

這樣做的缺點是用戶的密碼在腳本中。 :P

+0

這些會話不會過期嗎? –

+0

他們當然會。即使是傳統的Dropbox網絡應用程序,您代表第三方用戶(您通常使用重定向/授權流程,因此您永遠不會觸摸其密碼)也是如此。您可以將此代碼抽象爲每次會話過期時可調用的內容。這絕對是一個黑客,因爲OAuth人員真的不考慮自動化的用例。他們只關心允許應用程序在不知道密碼的情況下代表活動用戶採取行動。 –

+0

嗯...謝謝。我想我必須考慮一下,在我們的用例中使用Dropbox是否真的有意義。 –

相關問題