如何在.NET 8 C#控制台应用中通过Graph API获取M365组的SharePoint站点URL
你之前调用Drive端点得到的是组默认文档库的URL,要获取站点根URL,需要直接调用Groups/{groupId}/sites/root端点,对应.NET SDK的写法如下:
正确代码示例
using Microsoft.Graph; using Microsoft.Graph.Models.ODataErrors; // 假设已完成GraphClient的身份验证初始化 string groupId = "目标M365组的GUID"; try { // 调用站点根端点,仅请求webUrl字段 var rootSite = await graphClient.Groups[groupId].Sites["root"].GetAsync(config => { config.QueryParameters.Select = new[] { "webUrl" }; }); string siteRootUrl = rootSite.WebUrl; Console.WriteLine($"SharePoint根站点URL:{siteRootUrl}"); } catch (ODataError odataError) { Console.WriteLine($"请求失败:{odataError.Error.Message}"); }
关键说明
- 你之前使用的
Groups[groupId].Drive对应的是组的默认文档库资源,返回的WebUrl是文档库的访问路径,而非站点根URL。 - 正确的SDK调用路径是
graphClient.Groups[groupId].Sites["root"],完全对应你在Graph Explorer中使用的GET https://graph.microsoft.com/v1.0/groups/{GroupId}/sites/root?$select=webUrl接口。 - 通过
config.QueryParameters.Select配置$select参数,只返回需要的webUrl字段,减少响应数据量。
权限要求
确保你的应用已配置以下权限之一(根据身份验证类型选择):
- 委派权限:
Group.Read.All或Sites.Read.All - 应用权限:
Group.Read.All或Sites.Read.All
内容的提问来源于stack exchange,提问作者Michael Kelly
相关产品推荐
相关产品推荐

