You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET 8 C#控制台应用中通过Graph API获取M365组的SharePoint站点URL

获取M365组的SharePoint根站点URL(Microsoft Graph .NET SDK实现)

你之前调用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 00:12:11