无法使用 "source" 或 Rest API URL 从 OneDrive 下载文件(404 错误)



我正在尝试从REST API获取OneDrive上文件存储的内容。我使用iOS SDK访问我的文件列表(https://github.com/liveservices/LiveSDK-for-iOS)。我从要下载的对象中获取所有信息。因此,我假设所有登录过程都可以,并且我可以从当前会话中获得accessToken。

这是我的会话范围:

   scopes = [NSArray arrayWithObjects:
                      @"wl.signin",
                      @"wl.basic",
                      @"wl.skydrive",
                      @"wl.offline_access", nil];

我有一个"wl.skydrive",它是一个"特权"。

从我想要下载的文件中,我得到了以下信息:https://msdn.microsoft.com/en-us/library/dn631831.aspx

文档中说"源"对象包含一个临时URL,我可以在其中下载文件。但在中间,我试图从源URL获取,但我收到了404http响应(我的URL看起来与示例URL非常相似,所以应该没问题)。

这是的响应

url called: https://cr2vng.bn1302.livefilestore.com/y2mOPOvT5FDRrIRdKbCS3xtwQH9zz2gzzYPxLHIcOpHSo6bKP3QqJpGpL1U9c76a_QCwFwEPyTEbF2CVU63tb92bOkQ9ahcxAOhSBPws21K7DL5TnNe3AmbHThv4zlbohKiB8x6JO9gE2gjUcOUImPImA/01%20-%File%Name.mp3?psid=1
2015-03-24 21:55:20.339[1435:149631] response: <NSHTTPURLResponse: 0x7ff36af04ed0> { URL: https://cr2vng.bn1302.livefilestore.com/y2mOPOvT5FDRrIRdKbCS3xtwQH9zz2gzzYPxLHIcOpHSo6bKP3QqJpGpL1U9c76a_QCwFwEPyTEbF2CVU63tb92bOkQ9ahcxAOhSBPws21K7DL5TnNe3AmbHThv4zlbohKiB8x6JO9gE2gjUcOUImPImA/01%20-%File%Name.mp3?psid=1 } { status code: 404, headers {
"Accept-Ranges" = bytes;
"Content-Encoding" = gzip;
"Content-Length" = 0;
Date = "Tue, 24 Mar 2015 20:55:19 GMT";
P3P = "CP="BUS CUR CONo FIN IVDo ONL OUR PHY SAMo TELo"";
Server = "Microsoft-HTTPAPI/2.0";
"X-AsmVersion" = "UNKNOWN; 19.16.0.0";
"X-ClientErrorCode" = ItemDoesNotExist;
"X-MSNSERVER" = "BN1302____PAP221";
"X-QosStats" = "{"ApiId":0,"ResultType":2,"SourcePropertyId":0,"TargetPropertyId":42}";
"X-ThrowSite" = "4359.b800";
} }

我还尝试使用REST API执行相同的请求(https://msdn.microsoft.com/EN-US/library/office/dn659726.aspx#Download_a_file)具有相同的结果。使用那个API调用,我最终得到了一个重定向到一个类似的URL,我在"源"对象上得到了这个URL。

这两种情况下的404都没有意义,因为我正在从存在的对象中获取"id"。

OneDrive开发者帐户上的应用程序配置是否有问题?

奇怪的是,我所有的文件都从OneDrive中消失了,再次上传后,我可以使用我在"源"上获得的URL访问这些文件,而不会有任何问题。

我没有对代码做任何更改

最新更新