From the documentation, I can't find any ways to get the siteId of the site where I put the webpart in.
For example,
My current site is: https://{hostname}/sites/main1
<-- NOT root site, but I want to get this siteId
and I test my webpart here: https://{hostname}/sites/main1/_layouts/15/workbench.aspx
How can I achieve this? From the documentation,
A site is addressed be a unique identifier which is a composite ID of the following values:
Site collection hostname (contoso.sharepoint.com)
Site collection unique ID (guid)
Site unique ID (guid)
I can get the hostname easily by using location.hostname
(Yes, I am using JavaScript + React to build my webpart) but how to get the site-id easily with Graph API?
Try this: https://graph.microsoft.com/v1.0/sites/{hostname}:/sites/{path}?$select=id
For example:
https://graph.microsoft.com/v1.0/sites/cie493742.sharepoint.com:/sites/Contoso/Operations/Manufacturing?$select=id
(this one you can try on the Graph Explorer.
What you get back in the id is in this format:
{hostname},{spsite.id},{spweb.id}
For more info here is the link to the docs: https://learn.microsoft.com/en-us/graph/api/resources/sharepoint?view=graph-rest-1.0