10

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

例如,

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

我在这里测试我的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?

4

4 回答 4

39

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

于 2017-07-31T19:45:36.083 回答
1

在经典网站上使用spPageContextInfo

(location.host + "," + _spPageContextInfo.siteId + "," + _spPageContextInfo.webId).replace(/[\{\}]/g, "")
于 2019-02-19T07:37:52.727 回答
1

您可以通过以下 Graph Http Get API 获取 Site-id 的另一种方法。

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

于 2020-09-16T12:49:16.153 回答
0

您无需调用 Graph API 即可获取当前站点的 siteId。它在PageContext中可用。

在 webpart 的主类中,您可以在以下位置找到它:

this.context.pageContext.site.id
于 2018-11-07T20:42:43.377 回答