【问题标题】:Get Sharepoint Online Site using C# Graph SDK使用 C# Graph SDK 获取 Sharepoint 在线站点
【发布时间】:2019-06-12 00:55:13
【问题描述】:

我正在尝试使用 Graph SDK 通过 URL 获取特定的 Sharepoint 站点,以便我可以读取和写入列表、创建文档库以及将文档添加到现有库。

这可以获取根:

var site = await graphClient.Sites[SPUrl].Request().GetAsync();

这无法获得我想要的网站:

    var site = await graphClient.Sites[SPUrl+"/segment1/segment2/site"].Request().GetAsync();

这对于通过 URL 获取站点不起作用——它告诉我“提供的路径不存在或不代表站点”:

var siteByPath = await graphClient.Sites[SPUrl].SiteWithPath("/segment1/segement2/site").Request().GetAsync();

但是使用图形资源管理器,这有效: https://graph.microsoft.com/v1.0/sites/my.site.com:/sites/segment1/segment2/site?$select=id

使用图形资源管理器,我确定 URL 的每个部分都被视为自己的站点,但没有任何运气这样做 - 错误是“提供的标识符格式错误 - id 无效”:

    var site = await graphClient.Sites[SPUrl].Sites["segment1"].Request().GetAsync();

我错过了什么?

使用 Sharepoint CSOM,您只需通过 URL 请求站点即可。我的应用程序现在在 Azure 中,并通过 OAuth 令牌进行身份验证,而不是通过应用程序中处理的用户名和密码进行身份验证,因此我不确定我是否可以通过 CSOM 传递该身份验证。据我所知,我现在需要使用 Graph。

【问题讨论】:

    标签: c# asp.net azure microsoft-graph-api sharepoint-online


    【解决方案1】:

    问题似乎在于,如果您要查询站点根目录下的站点,则需要将“:”添加到原始根站点字符串中。所以 "等待 graphClient.Sites[SPUrl].Sites["/segment1/segment2/site"].Request().GetAsync();"需要是 "等待 graphClient.Sites[SPUrl+":"].Sites["/segment1/segment2/site"].Request().GetAsync();"这将使其与 Graph Explorer 中使用的语法相匹配。

    我以为使用 SDK 请求站点可以解决这个问题,但我错了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多