我正在尝试使用新的OneDrive API进行文件上传。我开始只使用简单的文件(即<100MB),一旦我让简单的文件正常工作,我就打算进行可恢复的上传!
我尝试过使用http://onedrive.github.io/items/upload_put.htm,但我回来了403。我认为这可能是因为该文件尚未存在,但我已成功使用OneDrive Web UI上传文件,但代码仍然无法上传文件。
我正在使用的网址如下:
https://api.onedrive.com/v1.0/drive/root:/:/内容的access_token =
C#代码是:
using (Stream fileStream = await file.OpenStreamForReadAsync())
{
try
{
HttpStreamContent streamContent = new HttpStreamContent(fileStream.AsInputStream());
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, oneDriveURI);
request.Content = streamContent;
request.Content.Headers.ContentType = new Windows.Web.Http.Headers.HttpMediaTypeHeaderValue("application/octet-stream");
HttpResponseMessage response = await client.SendRequestAsync(request);
Debug.WriteLine("UploadFileToOneDrive: response = {0}", response.StatusCode);
}
catch (Exception ex)
{
Debug.WriteLine("UploadFileToOneDrive failed with exception {0}", ex.Message);
}
}
我有什么错误/被误解? API文档需要更多示例: - (
答案 0 :(得分:2)
403错误代码与权限相关,因此您可能忘记包含正确的范围来上传文件。当您发送OAuth请求时,您还需要包含“onedrive.readwrite”作为范围之一。
获取https://login.live.com/oauth20_authorize.srf?client_id= {client_id}&amp; scope = {scope}&amp; response_type = token&amp; redirect_uri = {redirect_uri}
可以在“http://onedrive.github.io/auth/msa_oauth.htm”找到更多范围。我希望有所帮助。