在 Web 中使用 Dropbox API

Utilize Dropbox in Web API

不确定这是否真的是个愚蠢的问题,但是否可以在网络范围内访问/使用 Dropbox API。

考虑以下因素。我有一个用 Angular 编写的多租户前端应用程序。 C# web API 中的后端(多租户)。用户可以上传文档/文件。 API 将负责将文档上传到存储提供商。在这种情况下,它是 Dropbox。问题是,我读到 Dropbox 不再支持用户名/密码验证。因此,如果用户需要向调用应用程序提供同意,则使用 OAuth。这只需要发生一次。由于单个租户中的多个用户可以使用在线存储,我正在努力了解这将如何通过网络工作 API...

有什么建议吗? 谢谢!

是的,您可以在 Web API 中使用第 3 方 API。我从未使用过 Drop box API,但正如您所说,他们使用 OAuth 作为身份验证机制,我可以向您展示调用第 3 方 API 的代码,在这种情况下是 (clarifai)。 我正在使用 HttpClient您可以使用 Dropbox .NET SDK。但是,如果您想坚持使用 HTTP,那么 here 是相同的文档。

string token = "Oauth token received using some mechanism";    
string requestPath = string.Format("v1/tag");

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("https://api.clarifai.com/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);

HttpResponseMessage response = await client.PostAsync(requestPath, content);
if (response.IsSuccessStatusCode)
{
    var resString = await response.Content.ReadAsStringAsync();
    // JSON Response
    JObject resJsonObject = JObject.Parse(resString);

}

现在,由于您担心对用户进行身份验证并获取令牌。 Here 是 Dropbox 示例,其中展示了如何在 Dropbox 网站上重定向用户以进行身份​​验证并获取临时 oauth 令牌。

  • 查看 Connect 控制器中的 Connect 操作方法和 AuthAsync 操作方法。

希望对您有所帮助。如有任何疑问,请随时提出。