C# - Microsoft Graph API - 从自定义列表获取图片

问题描述 投票:0回答:2

我尝试从 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"}}

如何获取图片?

迈克尔,..,

c# sharepoint microsoft-graph-api
2个回答
1
投票

您似乎正在从图像列中获取值。此列不存储列表中的图像 blob 文件,它仅引用存储位置(站点资产)。您可以访问如下图片:

https://graph.microsoft.com/v1.0/sites/[site id]/lists/Site Assets/items/[you can get id from image column]/driveItem

enter image description here


0
投票

您可以从“spItemUrl”中提取驱动器 ID 和驱动器项目 ID。

有了它们,你就可以使用graph api了:

graphClient.Drives[DriveId].Items[DriveItemId].Content.Request().GetAsync();

但有时缩略图渲染器会丢失,我不知道为什么......

© www.soinside.com 2019 - 2024. All rights reserved.