如何使用新API将新文件上传到OneDrive?

时间:2015-04-16 14:45:30

标签: onedrive

我正在尝试使用新的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文档需要更多示例: - (

1 个答案:

答案 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”找到更多范围。我希望有所帮助。