ドキュメントから、Webパーツを配置したサイトのsiteIdを取得する方法が見つかりません。
例えば、
私の現在のサイトは:https://{hostname}/sites/main1
<-ルートサイトではありませんが、このsiteIdを取得します
ここで自分のWebパーツをテストします:https://{hostname}/sites/main1/_layouts/15/workbench.aspx
どうすればこれを達成できますか?ドキュメントから、
サイトは、次の値の複合IDである一意の識別子でアドレス指定されます。
サイトコレクションのホスト名(contoso.sharepoint.com)
サイトコレクションの一意のID(GUID)
サイトの一意のID(GUID)
location.hostname
を使用してホスト名を簡単に取得できます(はい、JavaScript + Reactを使用してWebパーツを構築しています)が、Graph APIを使用して簡単にサイト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
(これは、グラフエクスプローラで試すことができます。
IDで返されるのは次の形式です。
{hostname},{spsite.id},{spweb.id}.
詳細については、ここにドキュメントへのリンクがあります。 https://developer.Microsoft.com/en-us/graph/docs/api-reference/v1.0/api/site_get
現在のサイトのsiteIdを取得するためにGraph APIを呼び出す必要はありません。 PageContext で利用できます。
Webパーツのメインクラスでは、次の場所にあります。
this.context.pageContext.site.id
spPageContextInfo
を使用する従来のサイト:
(location.Host + "," + _spPageContextInfo.siteId + "," + _spPageContextInfo.webId).replace(/[\{\}]/g, "")