如何使用 Microsoft Graph API 获取当前站点的 siteId?
Posted
技术标签:
【中文标题】如何使用 Microsoft Graph API 获取当前站点的 siteId?【英文标题】:How can I get the siteId of the current site with Microsoft Graph API? 【发布时间】:2018-01-06 11:15:08 【问题描述】:从文档中,我找不到任何方法来获取我放置 web 部件的站点的 siteId。
例如,
我当前的站点是:https://hostname/sites/main1
我在这里测试我的 webpart:https://hostname/sites/main1/_layouts/15/workbench.aspx
我怎样才能做到这一点?从文档中,
一个站点被寻址为一个唯一标识符,它是以下值的复合 ID:
网站集主机名 (contoso.sharepoint.com)
网站集唯一 ID (guid)
网站唯一 ID (guid)
我可以使用location.hostname
轻松获取主机名(是的,我正在使用 javascript + React 构建我的 webpart)但是如何使用 Graph API 轻松获取站点 ID?
【问题讨论】:
【参考方案1】:试试这个:https://graph.microsoft.com/v1.0/sites/hostname:/sites/path?$select=id
例如:
https://graph.microsoft.com/v1.0/sites/cie493742.sharepoint.com:/sites/Contoso/Operations/Manufacturing?$select=id
(这个你可以在 Graph Explorer 上试试。
你在 id 中得到的是这种格式:
hostname,spsite.id,spweb.id
更多信息请点击文档链接:https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/site_get
【讨论】:
3 小时搜索的高潮。 This 部分有用,但仅提供站点 ID Microsoft 文档中总是存在某种关闭。它们通常含糊不清或详细到无法理解的程度。 我讨厌微软专门用于文档 如果路径包含空格,例如,在上面的示例中我们有“操作三元”而不是操作,该怎么办?所以 url 原来是“graph.microsoft.com/v1.0/sites/cie493742.sharepoint.com:/sites/…ternary/Manufacturing?$select=id”,这是行不通的!! @WouldBeNerd @KhushbooMulani 在 url 空间中通常用 %20 表示,但我不确定这是否会为您解决。【参考方案2】:在经典网站上使用spPageContextInfo
:
(location.host + "," + _spPageContextInfo.siteId + "," + _spPageContextInfo.webId).replace(/[\\]/g, "")
【讨论】:
这也适用于现代网站。请注意,只有当您导航到相关网站集(或其网站页面之一)时,您才能获得正确的网站 ID【参考方案3】:您可以通过以下 Graph Http Get API 获取 Site-id 的另一种方式。
https://graph.microsoft.com/v1.0/sites
【讨论】:
太棒了!为我工作。【参考方案4】:您无需调用 Graph API 即可获取当前站点的 siteId。它在PageContext 中可用。
在 webpart 的主类中,您可以在以下位置找到它:
this.context.pageContext.site.id
【讨论】:
以上是关于如何使用 Microsoft Graph API 获取当前站点的 siteId?的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft Graph API - 如何将附件上传到列表项
Microsoft Graph API calendarView 是不是仅限于一个月?如何获取所有事件?
Azure Developer使用Microsoft Graph API 批量创建用户,先后遇见的三个错误及解决办法
MS Graph API:microsoft.graph.createLink 未创建匿名视图链接