À partir de la documentation, je ne trouve aucun moyen d'obtenir l'ID de site du site dans lequel j'ai placé le composant WebPart.
Par exemple,
Mon site actuel est: https://{hostname}/sites/main1
<- PAS le site racine, mais je veux obtenir ce siteId
et je teste mon webpart ici: https://{hostname}/sites/main1/_layouts/15/workbench.aspx
Comment puis-je atteindre cet objectif? De la documentation,
Un site est adressé par un identifiant unique qui est un ID composite des valeurs suivantes:
Nom d'hôte de la collection de sites (contoso.sharepoint.com)
ID unique de la collection de sites (GUID)
ID unique du site (guid)
Je peux facilement obtenir le nom d'hôte en utilisant location.hostname
(Oui, j'utilise JavaScript + React pour créer mon composant WebPart) mais comment obtenir facilement l'ID de site avec l'API Graph?
Essaye ça: https://graph.Microsoft.com/v1.0/sites/{hostname}:/sites/{path}?$select=id
Par exemple: https://graph.Microsoft.com/v1.0/sites/cie493742.sharepoint.com:/sites/Contoso/Operations/Manufacturing?$select=id
(celui-ci, vous pouvez essayer sur l'explorateur de graphiques.
Ce que vous récupérez dans l'id est dans ce format:
{hostname},{spsite.id},{spweb.id}.
Pour plus d'informations, voici le lien vers les documents: https://developer.Microsoft.com/en-us/graph/docs/api-reference/v1.0/api/site_get
Vous n'avez pas besoin de faire un appel à l'API Graph pour obtenir le siteId du site actuel. Il est disponible dans le PageContext .
Dans la classe principale de votre composant WebPart, vous pouvez le trouver sur:
this.context.pageContext.site.id
Sur les sites classiques utilisant spPageContextInfo
:
(location.Host + "," + _spPageContextInfo.siteId + "," + _spPageContextInfo.webId).replace(/[\{\}]/g, "")