如何使用 Microsoft Graph API 获取当前站点的 siteId?

How can I get the siteId of the current site with Microsoft Graph API?

从文档中,我找不到任何方法来获取我放置 Web 部件的网站的 siteId。

例如,

我当前的站点是:https://{hostname}/sites/main1 <-- 不是根站点,但我想获取此 siteId

我在这里测试我的 Web 部件:https://{hostname}/sites/main1/_layouts/15/workbench.aspx

我怎样才能做到这一点?从文档中,

A site is addressed be a unique identifier which is a composite ID of the following values:

Site collection hostname (contoso.sharepoint.com)

Site collection unique ID (guid)

Site unique ID (guid)

我可以使用 location.hostname 轻松获取主机名(是的,我正在使用 JavaScript + React 构建我的 Web 部件)但是如何使用 Graph [=28] 轻松获取站点 ID =]?

试试这个: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}

有关更多信息,请参阅文档的 link:https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/site_get

您不需要调用 Graph API 来获取当前网站的 siteId。它在 PageContext.

中可用

在您的 Web 部件的主要 class 中,您可以在以下位置找到它:

this.context.pageContext.site.id

在使用 spPageContextInfo 的经典网站上:

(location.host + "," + _spPageContextInfo.siteId + "," + _spPageContextInfo.webId).replace(/[\{\}]/g, "")

您可以通过以下方式获取 Site-id Graph Http Get API.

https://graph.microsoft.com/v1.0/sites