0

I have what should have been an easy application, that I need to get done. However, OAuth 2 is just confusing me. Basically, I need to upload a file or group of files to a Box, Dropbox, etc. folder for backup purposes.

I have gone through SharpBox. It seems super easy, but I cannot compile it. There is a missing reference or something that causes it to throw an error:

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.

Also the following error:

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

As far as I can tell, there aren't any updates. How can fix this problem?

4

1 回答 1

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 步后传递给您的应用程序的唯一请求令牌. 外部服务接受这三个参数,如果第 2 步成功,则返回一个唯一令牌,允许您的应用代表该用户发出请求。您应该存储此令牌,因为您将需要它来发出后续请求(我喜欢将令牌与用户的外部服务帐户 ID 一起存储,以使 API 调用更容易)。

我仍然可以提供 OAuth2.0 的示例,但我检查了 DropBox 文档,他们的核心 API 说它仍然是版本 1,由于各种原因,它更加复杂。在这种情况下,我建议坚持使用第三方专用库,可以抽象出杂乱的细节。

于 2013-05-05T17:52:03.743 回答