web-dev-qa-db-ja.com

Microsoft Graph APIを使用して現在のサイトのsiteIdを取得するにはどうすればよいですか?

ドキュメントから、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を取得する方法は?

7
PCHC

これを試して: 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

15
Yina - MSFT

現在のサイトのsiteIdを取得するためにGraph APIを呼び出す必要はありません。 PageContext で利用できます。

Webパーツのメインクラスでは、次の場所にあります。

this.context.pageContext.site.id
0
RoelVB

spPageContextInfoを使用する従来のサイト:

(location.Host + "," + _spPageContextInfo.siteId + "," + _spPageContextInfo.webId).replace(/[\{\}]/g, "")
0
rlv-dan