I need to create a method to do some operations in SPO, lets say, create a modern site, but I need it in a REST API, that will be consumed later by a frontend angular or react app.
I found this sample:https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/modern-experience-customizations-p...
var targetTenantUrl = "https://[tenant].sharepoint.com/";
using (var context = new ClientContext(targetTenantUrl))
{
context.Credentials = OfficeDevPnP.Core.Utilities.CredentialManager.GetSharePointOnlineCredential("[Name-of-Your-Credentials]");
// Create new "modern" communication site at the url https://[tenant].sharepoint.com/sites/mymoderncommunicationsite
var communicationContext = await context.CreateSiteAsync(new CommunicationSiteCollectionCreationInformation {
Title = "title", // Mandatory
Description = "description", // Mandatory
Lcid = 1033, // Mandatory
AllowFileSharingForGuestUsers = false, // Optional
Classification = "classification", // Optional
SiteDesign = CommunicationSiteDesign.Topic, // Mandatory
Url = "https://[tenant].sharepoint.com/sites/mymoderncommunicationsite", // Mandatory
});
communicationContext.Load(communicationContext.Web, w => w.Url);
communicationContext.ExecuteQueryRetry();
Console.WriteLine(communicationContext.Web.Url);
}
The issue with this sample is that it takes a Credential as a parameter which is saved INTO the windows credentials manager.
On the context of an Azure WebApp, I suppose this wont work, and this sample would only work on a console app.
What are other alternatives to get a Sharepoint Context? I know App-Only doesnt work (already tested it)