How to create Microsoft 365/O365 Group with Teams using Graph API.

Published Nov 25 2020 06:40 PM 6,158 Views
Microsoft

Seems creating Microsoft 365/O365 Group via CSOM not working. If you try to use SharePoint Client Side Object Model(CSOM) you might run into following exception:

 

Microsoft.SharePoint.Client.ServerException
HResult=0x80131500
Message=The web template GROUP#0 is not available for sites on this tenant.
Source=Microsoft.SharePoint.Client.Runtime
StackTrace:
at Microsoft.SharePoint.Client.ClientRequest.ProcessResponseStream(Stream responseStream)
at Microsoft.SharePoint.Client.ClientRequest.ProcessResponse()
at Microsoft.SharePoint.Client.ClientRequest.ExecuteQueryToServer(ChunkStringBuilder sb)
at Microsoft.SharePoint.Client.ClientContext.ExecuteQuery()

 

 

We have to use Graph API and this sample should help get started. ROPC authentication is used. Delegated authentication should also work but not tested.

 

Setup Steps:
1] Setup Native App in AAD.
2] Copy the App Id as you will need to provide it later in the code.
3] Provide following Delegated Graph API permissions.

Groups.ReadWite.All, Directory.ReadWrite.All, openid, Team.Create, User.Read 
4] Grant Admin consent.
5] See screenshot below:

SPDev_Support_0-1606358317055.png

 

6] Sample C# code to Create Microsoft 365/O365 Group with Teams:

 

 

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Collections.Generic;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Text;

namespace CreateGroupMultiGeo
{
    class Program
    {
        static async Task Main(string[] args)
        {
            string clientId = "50168119-04dd-0000-0000-000000000000";
            string email = "someuser@spotenant.onmicrosoft.com";
            string passwordStr = "password";

            var req = new HttpRequestMessage(HttpMethod.Post, "https://login.microsoftonline.com/bc8dcd4c-0d60-0000-0000-000000000000/oauth2/token")
            {
                Content = new FormUrlEncodedContent(new Dictionary<string, string>
                {
                    ["resource"] = "https://graph.microsoft.com",
                    ["grant_type"] = "password",
                    ["client_id"] = clientId,
                    ["username"] = email,
                    ["password"] = passwordStr,
                    ["scope"] = "openid"
                })
            };

            HttpClient httpClient = new HttpClient();

            var res = await httpClient.SendAsync(req);

            string json = await res.Content.ReadAsStringAsync();

            if (!res.IsSuccessStatusCode)
            {
                throw new Exception("Failed to acquire token: " + json);
            }
            var result = (JObject)JsonConvert.DeserializeObject(json);
            //create a group

            HttpClient httpClientGroup = new HttpClient();

            httpClientGroup.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.Value<string>("access_token"));

            // Create a string variable and get user input from the keyboard and store it in the variable
            string grpName = "MultiGeoGraphAPIGrp1";

            string contentGroup = @"{
              'displayName': '" + grpName + @"',"
              + @"'groupTypes': ['Unified'],
              'mailEnabled': true,
              'mailNickname': '" + grpName + @"',"
              + @"'securityEnabled': false,
              'visibility':'Public',
              'preferredDataLocation':'GBR',
              'owners@odata.bind': ['https://graph.microsoft.com/v1.0/users/ecc0fc81-244b-0000-0000-000000000000']
            }";

            var httpContentGroup = new StringContent(contentGroup, Encoding.GetEncoding("utf-8"), "application/json");

            var responseGroup = httpClientGroup.PostAsync("https://graph.microsoft.com/v1.0/groups", httpContentGroup).Result;

            var content = await responseGroup.Content.ReadAsStringAsync();

            dynamic grp = JsonConvert.DeserializeObject<object>(content);

            Console.WriteLine(responseGroup.Content.ReadAsStringAsync().Result);

            System.Threading.Thread.Sleep(3000);

            //create a Team

            HttpClient httpClientTeam = new HttpClient();

            httpClientTeam.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.Value<string>("access_token"));

            //create a team

            string contentTeam = @"{ 
                'memberSettings': { 
                    'allowCreateUpdateChannels': true
                }, 
                'messagingSettings': { 
                    'allowUserEditMessages': true, 
                    'allowUserDeleteMessages': true 
                }, 
                'funSettings': { 
                    'allowGiphy': true, 
                    'giphyContentRating': 'strict' 
                }
            }";

            var httpContentTeam = new StringContent(contentTeam, Encoding.GetEncoding("utf-8"), "application/json");

            ////Refere: https://docs.microsoft.com/en-us/graph/api/team-put-teams?view=graph-rest-1.0&tabs=http
            var responseTeam = httpClientTeam.PutAsync(@"https://graph.microsoft.com/v1.0/groups/" + grp.id + @"/team", httpContentTeam).Result;

            Console.WriteLine(responseTeam.Content.ReadAsStringAsync().Result);

            Console.ReadKey();
        }
    }
}

 

 

4 Comments

Office 365 Groups are now called Microsoft 365 Groups.

Also, there is a missing " at the end of the line for:

string passwordStr = "password

 

Thanks! 

Why not just use Power Automate to do this instead? Less effort required.

Microsoft

Thanks for the feedback.

Frequent Contributor

@Loryan Strant This is a code snippet. I believe it's meant to be part of a broader provisioning application, not as a standalone feature.

%3CLINGO-SUB%20id%3D%22lingo-sub-1932894%22%20slang%3D%22en-US%22%3ERe%3A%20How%20to%20create%20O365%20Group%20sites%20with%20Teams%20using%20Graph%20API.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1932894%22%20slang%3D%22en-US%22%3E%3CP%3EOffice%20365%20Groups%20are%20now%20called%20Microsoft%20365%20Groups.%3C%2FP%3E%0A%3CP%3EAlso%2C%20there%20is%20a%20missing%20%22%20at%20the%20end%20of%20the%20line%20for%3A%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20%20language-csharp%22%3E%3CCODE%3Estring%20passwordStr%20%3D%20%22password%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EThanks!%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1942127%22%20slang%3D%22en-US%22%3ERe%3A%20How%20to%20create%20Microsoft%2FO365%20Group%20sites%20with%20Teams%20using%20Graph%20API.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1942127%22%20slang%3D%22en-US%22%3E%3CP%3EThanks%20for%20the%20feedback.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1942531%22%20slang%3D%22en-US%22%3ERe%3A%20How%20to%20create%20Microsoft%20365%2FO365%20Group%20sites%20with%20Teams%20using%20Graph%20API.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1942531%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F161%22%20target%3D%22_blank%22%3E%40Loryan%20Strant%3C%2FA%3E%26nbsp%3BThis%20is%20a%20code%20snippet.%20I%20believe%20it's%20meant%20to%20be%20part%20of%20a%20broader%20provisioning%20application%2C%20not%20as%20a%20standalone%20feature.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1934923%22%20slang%3D%22en-US%22%3ERe%3A%20How%20to%20create%20O365%20Group%20sites%20with%20Teams%20using%20Graph%20API.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1934923%22%20slang%3D%22en-US%22%3E%3CP%3EWhy%20not%20just%20use%20Power%20Automate%20to%20do%20this%20instead%3F%20Less%20effort%20required.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1932805%22%20slang%3D%22en-US%22%3EHow%20to%20create%20Microsoft%20365%2FO365%20Group%20with%20Teams%20using%20Graph%20API.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1932805%22%20slang%3D%22en-US%22%3E%3CP%3ESeems%20creating%20Microsoft%20365%2FO365%20Group%20via%20CSOM%20not%20working.%26nbsp%3BIf%20you%20try%20to%20use%20SharePoint%20Client%20Side%20Object%20Model(CSOM)%20you%20might%20run%20into%20following%20exception%3A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3EMicrosoft.SharePoint.Client.ServerException%0AHResult%3D0x80131500%0AMessage%3DThe%20web%20template%20GROUP%230%20is%20not%20available%20for%20sites%20on%20this%20tenant.%0ASource%3DMicrosoft.SharePoint.Client.Runtime%0AStackTrace%3A%0Aat%20Microsoft.SharePoint.Client.ClientRequest.ProcessResponseStream(Stream%20responseStream)%0Aat%20Microsoft.SharePoint.Client.ClientRequest.ProcessResponse()%0Aat%20Microsoft.SharePoint.Client.ClientRequest.ExecuteQueryToServer(ChunkStringBuilder%20sb)%0Aat%20Microsoft.SharePoint.Client.ClientContext.ExecuteQuery()%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EWe%20have%20to%20use%20Graph%20API%20and%20this%20sample%20should%20help%20get%20started.%20ROPC%20authentication%20is%20used.%20Delegated%20authentication%20should%20also%20work%20but%20not%20tested.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CU%3E%3CSTRONG%3ESetup%20Steps%3C%2FSTRONG%3E%3C%2FU%3E%3A%3CBR%20%2F%3E1%5D%20Setup%20Native%20App%20in%20AAD.%3CBR%20%2F%3E2%5D%20Copy%20the%20App%20Id%20as%20you%20will%20need%20to%20provide%20it%20later%20in%20the%20code.%3CBR%20%2F%3E3%5D%20Provide%20following%20Delegated%20Graph%20API%20permissions.%3C%2FP%3E%0A%3CP%3EGroups.ReadWite.All%2C%20Directory.ReadWrite.All%2C%20openid%2C%20Team.Create%2C%20User.Read%26nbsp%3B%3CBR%20%2F%3E4%5D%20Grant%20Admin%20consent.%3CBR%20%2F%3E5%5D%20See%20screenshot%20below%3A%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22SPDev_Support_0-1606358317055.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F236195i00C0585727F29941%2Fimage-size%2Fmedium%3Fv%3D1.0%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22SPDev_Support_0-1606358317055.png%22%20alt%3D%22SPDev_Support_0-1606358317055.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CDIV%20id%3D%22tinyMceEditorSPDev_Support_0%22%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CP%3E6%5D%20Sample%20C%23%20code%20to%20Create%20Microsoft%20365%2FO365%20Group%20with%20Teams%3A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-csharp%22%3E%3CCODE%3Eusing%20System%3B%0Ausing%20System.Net.Http%3B%0Ausing%20System.Net.Http.Headers%3B%0Ausing%20System.Collections.Generic%3B%0Ausing%20System.Threading.Tasks%3B%0Ausing%20Newtonsoft.Json%3B%0Ausing%20Newtonsoft.Json.Linq%3B%0Ausing%20System.Text%3B%0A%0Anamespace%20CreateGroupMultiGeo%0A%7B%0A%20%20%20%20class%20Program%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20static%20async%20Task%20Main(string%5B%5D%20args)%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20string%20clientId%20%3D%20%2250168119-04dd-0000-0000-000000000000%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20string%20email%20%3D%20%22someuser%40spotenant.onmicrosoft.com%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20string%20passwordStr%20%3D%20%22password%22%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20req%20%3D%20new%20HttpRequestMessage(HttpMethod.Post%2C%20%22https%3A%2F%2Flogin.microsoftonline.com%2Fbc8dcd4c-0d60-0000-0000-000000000000%2Foauth2%2Ftoken%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Content%20%3D%20new%20FormUrlEncodedContent(new%20Dictionary%3CSTRING%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%22resource%22%5D%20%3D%20%22https%3A%2F%2Fgraph.microsoft.com%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%22grant_type%22%5D%20%3D%20%22password%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%22client_id%22%5D%20%3D%20clientId%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%22username%22%5D%20%3D%20email%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%22password%22%5D%20%3D%20passwordStr%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%22scope%22%5D%20%3D%20%22openid%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D)%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20HttpClient%20httpClient%20%3D%20new%20HttpClient()%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20res%20%3D%20await%20httpClient.SendAsync(req)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20string%20json%20%3D%20await%20res.Content.ReadAsStringAsync()%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(!res.IsSuccessStatusCode)%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20throw%20new%20Exception(%22Failed%20to%20acquire%20token%3A%20%22%20%2B%20json)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20result%20%3D%20(JObject)JsonConvert.DeserializeObject(json)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2Fcreate%20a%20group%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20HttpClient%20httpClientGroup%20%3D%20new%20HttpClient()%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20httpClientGroup.DefaultRequestHeaders.Authorization%20%3D%20new%20AuthenticationHeaderValue(%22Bearer%22%2C%20result.Value%3CSTRING%3E(%22access_token%22))%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Create%20a%20string%20variable%20and%20get%20user%20input%20from%20the%20keyboard%20and%20store%20it%20in%20the%20variable%0A%20%20%20%20%20%20%20%20%20%20%20%20string%20grpName%20%3D%20%22MultiGeoGraphAPIGrp1%22%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20string%20contentGroup%20%3D%20%40%22%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20'displayName'%3A%20'%22%20%2B%20grpName%20%2B%20%40%22'%2C%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B%20%40%22'groupTypes'%3A%20%5B'Unified'%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20'mailEnabled'%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20'mailNickname'%3A%20'%22%20%2B%20grpName%20%2B%20%40%22'%2C%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B%20%40%22'securityEnabled'%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20'visibility'%3A'Public'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20'preferredDataLocation'%3A'GBR'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20'owners%40odata.bind'%3A%20%5B'https%3A%2F%2Fgraph.microsoft.com%2Fv1.0%2Fusers%2Fecc0fc81-244b-0000-0000-000000000000'%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%22%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20httpContentGroup%20%3D%20new%20StringContent(contentGroup%2C%20Encoding.GetEncoding(%22utf-8%22)%2C%20%22application%2Fjson%22)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20responseGroup%20%3D%20httpClientGroup.PostAsync(%22https%3A%2F%2Fgraph.microsoft.com%2Fv1.0%2Fgroups%22%2C%20httpContentGroup).Result%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20content%20%3D%20await%20responseGroup.Content.ReadAsStringAsync()%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20dynamic%20grp%20%3D%20JsonConvert.DeserializeObject%3COBJECT%3E(content)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20Console.WriteLine(responseGroup.Content.ReadAsStringAsync().Result)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20System.Threading.Thread.Sleep(3000)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2Fcreate%20a%20Team%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20HttpClient%20httpClientTeam%20%3D%20new%20HttpClient()%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20httpClientTeam.DefaultRequestHeaders.Authorization%20%3D%20new%20AuthenticationHeaderValue(%22Bearer%22%2C%20result.Value%3CSTRING%3E(%22access_token%22))%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2Fcreate%20a%20team%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20string%20contentTeam%20%3D%20%40%22%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'memberSettings'%3A%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'allowCreateUpdateChannels'%3A%20true%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'messagingSettings'%3A%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'allowUserEditMessages'%3A%20true%2C%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'allowUserDeleteMessages'%3A%20true%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'funSettings'%3A%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'allowGiphy'%3A%20true%2C%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'giphyContentRating'%3A%20'strict'%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%22%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20httpContentTeam%20%3D%20new%20StringContent(contentTeam%2C%20Encoding.GetEncoding(%22utf-8%22)%2C%20%22application%2Fjson%22)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%2F%2FRefere%3A%20https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fgraph%2Fapi%2Fteam-put-teams%3Fview%3Dgraph-rest-1.0%26amp%3Btabs%3Dhttp%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20responseTeam%20%3D%20httpClientTeam.PutAsync(%40%22https%3A%2F%2Fgraph.microsoft.com%2Fv1.0%2Fgroups%2F%22%20%2B%20grp.id%20%2B%20%40%22%2Fteam%22%2C%20httpContentTeam).Result%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20Console.WriteLine(responseTeam.Content.ReadAsStringAsync().Result)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20Console.ReadKey()%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%7D%3C%2FSTRING%3E%3C%2FOBJECT%3E%3C%2FSTRING%3E%3C%2FSTRING%3E%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-1932805%22%20slang%3D%22en-US%22%3E%3CP%3EIf%20you%20try%20to%20use%20SharePoint%20Client%20Side%20Object%20Model(CSOM)%20you%20might%20run%20into%20following%20exception%3A%3CBR%20%2F%3EMicrosoft.SharePoint.Client.ServerException%3CBR%20%2F%3EHResult%3D0x80131500%3CBR%20%2F%3EMessage%3DThe%20web%20template%20GROUP%230%20is%20not%20available%20for%20sites%20on%20this%20tenant.%3CBR%20%2F%3ESource%3DMicrosoft.SharePoint.Client.Runtime%3CBR%20%2F%3EStackTrace%3A%3CBR%20%2F%3Eat%20Microsoft.SharePoint.Client.ClientRequest.ProcessResponseStream(Stream%20responseStream)%3CBR%20%2F%3Eat%20Microsoft.SharePoint.Client.ClientRequest.ProcessResponse()%3CBR%20%2F%3Eat%20Microsoft.SharePoint.Client.ClientRequest.ExecuteQueryToServer(ChunkStringBuilder%20sb)%3CBR%20%2F%3Eat%20Microsoft.SharePoint.Client.ClientContext.ExecuteQuery()%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1932805%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EDeveloper%20Support%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Version history
Last update:
‎Dec 14 2020 09:59 AM
Updated by: