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

时间:2017-07-31 01:48:50

标签: microsoft-graph sharepoint-online spfx

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

例如,

我当前的网站是:https://{hostname}/sites/main1< - 不是root网站,但我想获得此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轻松获取site-id?

4 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:0)

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

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

image2

答案 2 :(得分:0)

在使用spPageContextInfo的经典网站上:

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

答案 3 :(得分:0)

另一种方法可以通过Graph Http Get API下面获得Site-id。

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