是的,您可以利用Web API内部的第三方API。我从来没有使用Drop Box API,但正如你所说他们使用OAuth作为认证机制,我可以向你展示调用第三方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
操作方法,并在Home
控制器AuthAsync
操作方法。
希望这可以帮助你。如有任何疑问,请随时询问。
如果您使用的是Dropbox .NET SDK,那么我会看看那里提供的示例。如果你看看他们简单的博客演示,你可以看到他们如何为数据库中的所有用户存储访问令牌,然后当上传文件时,他们为正在执行操作的用户在后端检索访问令牌并使用该令牌进行身份验证要求dropbox https://github.com/dropbox/dropbox-sdk-dotnet/tree/master/dropbox-sdk-dotnet/例如 如果这是你正在寻找的东西,我不积极,但也许它会帮助指出你在正确的方向... – comradburk
@comradburk非常感谢您的答复。所以我不能只存储一个访问令牌并将其用于所有用户?我只想为所有用户使用一个存储位置。事实上,根管理员用户设置了Dropbox实例。网站上的所有其他用户无需知道正在使用哪个存储提供商 –