【发布时间】:2015-01-11 18:36:40
【问题描述】:
我正在使用 SharePoint 的 REST API 来查询托管在企业用户的 Office 365 SharePoint 网站中的文件。
我已使用 OAuth 对用户进行身份验证并授权应用程序,如下所述:http://msdn.microsoft.com/en-us/library/azure/dn645542.aspx
我能够通过 GET 请求成功查询 API: https://XXXXXXX.sharepoint.com/sites/xxxxx/xxxxx/myfoldername/_api/files (如您所料,作为 Authorization 标头的请求设置为“Bearer”。)
上面的查询给了我以下 JSON 结果:
{
"odata.metadata" = "https://xxxxxxxxx.sharepoint.com/sites/xxxxxxxxx/xxxxxxxxx/myfoldername/_api/$metadata#SP.ApiData.Files";
value = (
{
CreatedBy = {
Id = 1;
Name = “Test”;
Puid = xxxxx;
};
ETag = “\”{hsdglksjfldkasnfldasknk},4\””;
Id = JKLBbiuuu908yYHhh89YBn9n9ynynYUN;
LastModifiedBy = {
Id = 1;
Name = “XXXXX”;
Puid = XXXXXXXXXXX;
};
Name = "videofile.wmv";
Size = 56492358;
TimeCreated = "2013-09-23T05:16:44Z";
TimeLastModified = "2013-09-23T05:28:42Z";
Url = "https://xxxxxxxxx.sharepoint.com/sites/xxxxxxxxx/xxxxxxxxx/myfoldername/Shared Documents/videofile.wmv";
"odata.editLink" = "Web/Lists(guid’9568472598-2c28-489BF2-a1ae-kfjdasfkjb)/files(‘jkbvasdjfbakfndasnMNBBAMnsaldfan)”;
"odata.id" = "https://xxxxxxxxx.sharepoint.com/sites/xxxxxxxxx/xxxxxxxxx/myfoldername/_api/Web/Lists(guid’987795-gfkjhghs-ty42398yhfo’)/files('jkbvasdjfbakfndasnMNBBAMnsaldfan')";
"odata.type" = "MS.FileServices.File";
})
}
(请记住,上面实际上不是 JSON,而是 JSON 解析器的文本输出)
在上面的结果中,我在value 部分中得到了一个文件数组。出于说明目的,我已将此数组缩减为一项。
您会看到每个项目都代表一个文件的元数据。有一个属性叫Url;然后我用它来尝试下载文件。我创建了一个 HTTP 请求,在 Authorization 标头中附加了Bearer <access_token>,但是,响应始终是HTTP 401 UNAUTHORIZED。
请注意:我正在编写的软件实际上是在 Objective-C 中使用 AFNetworking 2 的AFHTTPRequestOperationManager。
有人知道我如何实际下载该文件吗?我在文档中看到了对一些名为“contentUrl”的属性的引用,但未提供此属性。
谢谢 克里斯
【问题讨论】:
标签: rest sharepoint azure sharepoint-2013 office365