我尝试从 Sharepoint 自定义列表中获取图片。我可以读取列表中的所有列,并使用图形 API 从自定义文档库的条目中获取图片。但我无法访问(或访问)存储列表中图片的文档库。该库位于 /..../SiteAssets/{ListId} 下。我无法访问 SiteAssets。在浏览器中我可以做到。
protected async Task<List<Dictionary<string, object>>> GetSpListItems(string siteId, string listId, IEnumerable<Option> spListItemQuery)
{
var listRawContent = await GraphClient
.Sites[siteId]
.Lists[listId]
.Items
.Request(spListItemQuery)
.GetAsync();
var items = new List<Dictionary<string, object>>();
foreach (var rawItem in listRawContent)
{
var data = new Dictionary<string, object>
{
{"Id", rawItem.Id}
};
if (rawItem.Fields.AdditionalData is Dictionary<string, object> listrawItemAditional)
foreach (var addContent in listrawItemAditional)
{
data.Add(addContent.Key, addContent.Value);
}
items.Add(data);
}
return items;
}
这给了我列表项。一个项目在一个字段中包含一张图片, 如下:
{"fileName":"pic01.jpg","serverRelativeUrl":"/sites/NewsPanelz_Test/SiteAssets/Lists/5a86dd02-9583-48c5-bc6f-077f04181406/ pic01.jpg","id":"2d1eac72-7167-46cc-a680-f8288f71bebe","serverUrl":"https://bxxxxx.sharepoint.com","thumbnailRenderer":{"sp ItemUrl":"https://bxxxxx.sharepoint.com:443/_api/v2.1/drives/b!UizO8Gx3p0-zhzRiSLs8VPdUqg0IsT5Dm5N7n-4YeTtpQAxoVMrLSZeU8bW8 evTF/items/01TT42SR3SVQPC2Z3RZRDKNAHYFCHXDPV6","fileVersion":1,"sponsorToken":"L3NpdGV.....0cy9....zdGUxfEJpbGRkYXRlaXwx"}}
如何获取图片?
迈克尔,..,
您可以从“spItemUrl”中提取驱动器 ID 和驱动器项目 ID。
有了它们,你就可以使用graph api了:
graphClient.Drives[DriveId].Items[DriveItemId].Content.Request().GetAsync();
但有时缩略图渲染器会丢失,我不知道为什么......