Open Marian-Kechlibar opened 8 months ago
I am seeing the same issue with delta queries in C#. The returned id matches the web id of the sharepoint site.
I was able to work around this by requesting the siteCollection and sharepointIds properties and assembling the sharepoint graph Id from the siteCollection.hostName, sharepointIds.SiteId and sharepointIds.WebId
Ideally the graph delta response should just have the graph site id in the delta response as the Id of the value, the webId is functionally useless for retrieving any further information about the site from the Graph API
I am using the latest version (2.3.0), and I want to get the list of all sites.
When I use the classical SitesRequestBuilderGetRequestConfiguration and invoke
$response = $context->sites()->get($configuration)->wait();
I get the correct set of values - instances of \Microsoft\Graph\Generated\Models\Site where ids of all the listed sites conform to the full specification of "Site collection hostname, Site collection unique ID, Site unique ID".
When I use DeltaRequestBuilderGetRequestConfiguration and invoke
$context->sites()->delta()->get()->wait()
all the instances of \Microsoft\Graph\Generated\Models\Site look identical, with the exception of the id field, which is suddenly truncated to the Site unique ID only. (Which isn't really unique globally, only within a certain site collection.)
The official documentation is a bit unclear on this. The example for obtaining the whole set clearly indicates that full ids should be returned:
"id": "contoso.sharepoint.com,da60e844-ba1d-49bc-b4d4-d5e36bae9019,712a596e-90a1-49e3-9b48-bfa80bee8740",
but the "Removed" response only indicates the Site unique ID only.
"id": "bd565af7-7963-4658-9a77-26e11ac73186",
Without consistent behavior, the delta requests will be unusable.