首页 > 解决方案 > 获取组的 Sharepoint 站点并使用 Graph 上传文件

问题描述

通过 Teams 应用程序使用 MS Graph SDK,我试图获取一个组的 Sharepoint 站点并将文件上传到它。我无法获得对网站驱动器的引用,它对我来说总是空的。这是我正在尝试的:

var siteName = "testSite";
var site = (await graphService.Groups[groupId].Sites.Request().GetAsync())
    .FirstOrDefault(x => x.DisplayName == SiteName);   

using var wc = new WebClient();
using var stream = new MemoryStream(wc.DownloadData(attachment.DownloadUrl));
// site.Drive is always null
var uploadedFile = await site.Drive.Root
    .ItemWithPath($"Test/123/file.jpg").Content.Request().PutAsync<DriveItem>(stream);  

该应用程序具有Files.ReadWrite.AllGroup.Read.All权限Sites.ReadWrite.All

使用 Postman,我在调用 groups/{{id}}/site/root 时得到以下信息,使用相同的令牌(隐藏的值都是正确的)

邮递员

标签: c#sharepointmicrosoft-teamsonedrivemicrosoft-graph-sdks

解决方案


您可以尝试使用以下方式为群组网站上传文件:

   var item = await graphClient.Groups[groupId].Drive.Root
               .ItemWithPath("test.docx")
               .Content
               .Request()
               .PutAsync<DriveItem>(stream);

推荐阅读