As previously explored, batching is the preferred and more efficient approach to processing a large volume of API requests. For every request, there is a call to the Microsoft Graph API and the accompanying response. With that in mind, things add up quickly as dozens, if not hundreds, of API requests are made. Batching bundles … Continue reading Graph API: SPO List Items + Batch Delete
Graph API
Graph API: Chunky Data + Recursion
Some results are best achieved via recursion, functions being able to "call themselves from within their own code." Using the Microsoft Graph API, recursion is necessary when querying large datasets because the API responses can only return so many records at a time. Whenever there are still more records to query, the response object includes … Continue reading Graph API: Chunky Data + Recursion
Graph API: SPO Move/ Copy Targets
Microsoft 365 has a large offering of services. To script and interact with many of them, the Microsoft Graph API utilizes a central endpoint, with dozens of REST APIs, to work with files, calendars, mail, etc. Although not currently as robust as some of the legacy on-prem PowerShell modules, the Graph resources and their APIs … Continue reading Graph API: SPO Move/ Copy Targets
Graph API: Follow SharePoint Online Sites
[SharePoint Online] has several social media-esque features baked into the solution. One such feature, choosing to "follow" specific SPO sites. But this is a manual action performed by each individual. That is, unless the Microsoft Graph API is used to follow a site on a person's behalf... Figure 1 - SharePoint Online sites being followed. … Continue reading Graph API: Follow SharePoint Online Sites
Graph API: Building and Working w/ Batches
Several of the Microsoft 365 resources are accessible through the Microsoft Graph REST API. As adoption grows, Microsoft introduces more resources and more APIs. But with this increased adoption, customers are generating more and more API requests. And when too many requests are generated too quickly, Microsoft will throttle. This results in a series of … Continue reading Graph API: Building and Working w/ Batches
Graph API: Process SPO Folders w/ Special Characters
Microsoft Graph is a RESTful web API. With these APIs, I can access many of the Microsoft 365 resources. But for now, I need to query the contents of a folder with a special character in the name. Why is this an issue? Document management systems like [SharePoint Online] will often support special characters that … Continue reading Graph API: Process SPO Folders w/ Special Characters
SharePoint Online: File Metadata w/ Graph API
Microsoft's Graph API has endpoints for [SharePoint Online] lists and libraries. Worthy of note, document libraries are /drives when using the APIs. And although libraries are technically lists, the two resources will return different properties for the same SharePoint object. Additionally, some actions can only be performed using the /lists resources. An example of this, … Continue reading SharePoint Online: File Metadata w/ Graph API
OneDrive: Hidden List (SharePoint Home Cache List – Part II)
The series has finally reached a conclusion. The final list, SharePointHomeCacheList, had so many items that it was divided into two posts. Part I spotlighted 3 list items and Part II will cover two additional items... E.g., export of list object in PowerShell ISE. Get target items $api = "/sites/$($siteGuid)/lists/$($listGuid)/items" $api += "?expand=fields" $lst1 = … Continue reading OneDrive: Hidden List (SharePoint Home Cache List – Part II)
OneDrive: Hidden List (SharePoint Home Cache List)
Auditing [OneDrive for Business] sites with PowerShell and the Microsoft Graph API uncovered several hidden lists. The SharePointHomeCacheList is one of these lists, but it offers more information than the previously discussed lists. Continuing the trend of examination: Create script variables. [System.String] $endUserAccount = "charles@contoso.com" $endUserAccount = $endUserAccount.Replace("@", "_").Replace(".", "_") [System.String] $tenantName = "contoso" [System.String] … Continue reading OneDrive: Hidden List (SharePoint Home Cache List)
OneDrive: Hidden List (Recent Lists)
Another hidden list found, so onward to part 5 of the series... This might be a new-ish container, but it logs recently created [SharePoint Online] lists by a person so it gets audited: Create script variables. [System.String] $endUserAccount = "charles@contoso.com" $endUserAccount = $endUserAccount.Replace("@", "_").Replace(".", "_") [System.String] $tenantName = "contoso" [System.String] $requestAPI = "" [System.String] $siteGuid … Continue reading OneDrive: Hidden List (Recent Lists)
OneDrive: Hidden List (Access Requests)
So yeah, this was an unintentional blog series. Welcome to part 4 out of #shrugs because there were more hidden lists than expected... But this time, there's a "request" to audit access requests of an individual's [OneDrive for Business] account. E.g., a PDF was shared with an external collaborator. Create the script variables. [System.String] $endUserAccount … Continue reading OneDrive: Hidden List (Access Requests)
OneDrive: Hidden List (Notifications)
[OneDrive for Business] sites are [SharePoint Online] site collections. Because of this, the ODfB sites have hidden lists which are discoverable using scripted solutions. Another of these hidden lists track user notifications. The Microsoft Graph API is again capable of querying the list and its items for reporting... E.g., list user notification types. To begin, … Continue reading OneDrive: Hidden List (Notifications)
OneDrive: Hidden List (User Activity)
[OneDrive for Business] sites are [SharePoint Online] site collections. Because of this, ODfB sites have hidden lists which are discoverable using scripted solutions. One of these hidden lists is tasked with tracking user activity. The Microsoft Graph API is again helpful to query these hidden list records for reporting... E.g., instances of user comments. To … Continue reading OneDrive: Hidden List (User Activity)
OneDrive: Hidden List (Sharing Links)
[OneDrive for Business] accounts are essentially [SharePoint Online] site collections. Because of this, ODfB sites also have several hidden lists that are discoverable with scripted solutions. One hidden list is titled Sharing Links and it keeps a record of shared items. Though the Microsoft 365 Admin center has a nice OneDrive activity report, custom solutions … Continue reading OneDrive: Hidden List (Sharing Links)
Training Session: Graph API – OneDrive vs SharePoint
Microsoft has invested heavily into their Graph API which connects with the Office 365 services. The approach of old, CSOM, not so much as of late. But that makes sense considering the services are cloud-hosted. CSOM was perfect for solutions running on the application server, but [SharePoint Online] doesn't allow this. Going forward, the Graph … Continue reading Training Session: Graph API – OneDrive vs SharePoint