2013-05-04 62 views
0

我有本應該是一個簡單的應用程序,我需要完成。然而,OAuth 2只是讓我困惑。基本上,我需要將文件或文件組上傳到BoxDropbox等文件夾以備用。如何使用OAuth 2

我已經通過SharpBox。看起來非常容易,但我無法編譯它。有一些導致它拋出一個錯誤缺少引用或東西:

Could not resolve this reference. Could not locate the "AssemblyAppLimit.CloudComputing.SharpBox.Net40". Check to make sure the assembly exists on disk. If this reference is required by your code.

而且出現以下錯誤:

The type or namespace name 'DropBoxCredentials' could not be found (are you missing a using directive or an assembly reference?)

據我所知,目前還沒有任何更新。如何解決這個問題?

+1

雖然不是一個完整的答案,但你可能想看看http://dotnetopenauth.net/ – Matt 2013-05-04 17:34:41

+1

如果你的地獄傾向於自己寫,我可以提供一個與facebook服務器端交互的工作示例,它是Oauth2,但它看起來像你已經在使用一些我不熟悉的「AssemblyAppLimit.CloudComputing.SharpBox.Net40」的自定義庫。另外你在哪裏得到這個DropBoxCredentials錯誤。在編譯? – Matt 2013-05-04 17:42:14

+0

你好,是的,我有點希望能走我自己的路。自定義庫是http://sharpbox.codeplex.com/我沒有附加到它,只是我能找到的唯一的東西,它不工作。很高興看到auth進程的適當的oauth代碼。 – ShaneTheTech 2013-05-04 18:14:21

回答

0

您得到的第一個錯誤是因爲無法找到庫「AssemblyAppLimit.CloudComputing.SharpBox.Net40」。確保將其添加到可用的文件夾中,在您的項目中引用它,並將其包含在構建中。您得到的第二個錯誤是因爲您沒有提供Dropbox OAuth憑據。在提出受保護的請求之前,您必須驗證用戶身份。我發現這個網頁很有用:http://sharpbox.codeplex.com/wikipage?title=SharpBox%20Developer%20Tutorials&referringTitle=Documentation。第2步詳細介紹瞭如何使用DropBox進行OAuth授權。

OAuth 2實際上比OAuth 1複雜得多,它只有幾個步驟。

  1. 使用外國服務提供的URL生成包含您的應用獨特的消費重點,重定向URL,境外服務所需的任何其他權限/屬性的完整URL。
  2. 將用戶重定向到步驟1中生成的URL。他們的外部服務將完成其操作並確認您的應用訪問。如果一切順利的話,你會得到一個獨特的成功標誌。
  3. 向包含3個組件的外部服務請求第二個位置 - 成功完成後,您的應用程序的用戶密鑰(如用戶名),用戶密碼(如密碼)和唯一請求令牌外部服務接受這三個參數,如果第2步成功,則返回一個唯一標記,允許您的應用程序代表該用戶發出請求。您應該存儲此令牌,因爲您將需要它來進行後續請求(我喜歡將令牌與用戶的外部服務帳戶ID一起存儲,以使API調用更容易)。

我仍然可以提供OAuth2.0的示例,但我檢查了DropBox文檔及其核心API,說它仍然是版本1,由於各種原因它更復雜。在這種情況下,我會建議堅持第三方專用庫,可以抽象混亂的細節。

+0

再次,你好,如果你有第二個問題,我還有一個問題。我可以從Dropbox獲得oauth_token,問題是我如何才能將它保存到一個靜態位置,以便我可以調用它甚至將它保存到某個位置。我已經粘貼了下面的內容,但它所做的只是打開瀏覽器執行auth過程,然後使用oauth_token返回重定向網址。 – ShaneTheTech 2013-05-08 02:29:28