{"id":748,"date":"2018-11-14T06:03:43","date_gmt":"2018-11-14T06:03:43","guid":{"rendered":"http:\/\/blog.softreeconsulting.com\/?p=748"},"modified":"2018-11-14T06:03:43","modified_gmt":"2018-11-14T06:03:43","slug":"create-web-part-page-sharepoint-2013-programmatically-using-csom","status":"publish","type":"post","link":"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/","title":{"rendered":"How to Create Web Part Page in SharePoint 2013\/2016\/2019 Programmatically using CSOM?"},"content":{"rendered":"<p>Basically, CSOM has not exposed any inbuilt functions which will help us in creating web part page template in SharePoint 2013\/2016\/2019. By using CSOM functions we can create wiki pages, modern pages and also publishing page but we cannot create web part pages.<\/p>\n<p>In this blog post I am going to use &#8220;Web Browser Control&#8221; to achieve this task.<\/p>\n<p>By using &#8220;Web Browser Control&#8221; we can create webpart page in destination page Library. We can create web part page by navigating to this url &#8220;&lt;Site Url&gt;+ \/_layouts\/15\/spcf.aspx&#8221; and there we can select the webpart page name, page layout type, destination library and then can click the &#8216;Create&#8217; button internally to create the page in destination library location.<\/p>\n<p>So in this blog post I am going to share all code details how you can invoke to \u201c\/_layouts\/15\/spcf.aspx\u201d page and then how you can set parameter and then submit the page by using \u201cWeb Browser Control\u201d.<\/p>\n<p>In this example I am using wpf application so my design page will have the extension as .xaml.<\/p>\n<p><strong>Point-1:<\/strong><\/p>\n<p>We have to add a web browser control in design page and please make it hidden by default as we are going to use it internally so the end user cannot see this control.<\/p>\n<p>Please refer the below mentioned code for adding \u201cWebBrowserControl\u201d in design or \u201c.xaml\u201d page.<\/p>\n<p>[code lang=&#8221;c&#8221;]<\/p>\n<p>\/\/ adding WebBrowser control in design page<br \/>\n&amp;lt;WebBrowser x:Name=&#8221;WebBrowserControlCreatePage&#8221; Grid.Row=&#8221;0&#8243; Grid.Column=&#8221;0&#8243; Height=&#8221;10&#8243; Width=&#8221;10&#8243; Visibility=&#8221;Hidden&#8221;\/&amp;gt;;<\/p>\n<p>[\/code]<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>Design Page<\/strong><\/span><\/p>\n<p>[code lang=&#8221;c&#8221;]<\/p>\n<p>&amp;lt;Window x:Class=&#8221;WpfApp1.MainWindow&#8221;<br \/>\nxmlns=&#8221;http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation&#8221;<br \/>\nxmlns:x=&#8221;http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml&#8221;<br \/>\nxmlns:d=&#8221;http:\/\/schemas.microsoft.com\/expression\/blend\/2008&#8243;<br \/>\nxmlns:mc=&#8221;http:\/\/schemas.openxmlformats.org\/markup-compatibility\/2006&#8243;<br \/>\nxmlns:local=&#8221;clr-namespace:WpfApp1&#8243;<br \/>\nmc:Ignorable=&#8221;d&#8221;<br \/>\nTitle=&#8221;MainWindow&#8221; Height=&#8221;450&#8243; Width=&#8221;800&#8243;&amp;gt;<br \/>\n&amp;lt;Grid&amp;gt;<\/p>\n<p>&amp;lt;Label x:Name=&#8221;lblStatus&#8221; HorizontalAlignment=&#8221;Center&#8221; VerticalAlignment=&#8221;Center&#8221;&amp;gt;&amp;lt;\/Label&amp;gt;<br \/>\n&amp;lt;WebBrowser x:Name=&#8221;WebBrowserControlCreatePage&#8221; Grid.Row=&#8221;0&#8243; Grid.Column=&#8221;0&#8243; Height=&#8221;10&#8243; Width=&#8221;10&#8243; Visibility=&#8221;Hidden&#8221;\/&amp;gt;<\/p>\n<p>&amp;lt;\/Grid&amp;gt;<br \/>\n&amp;lt;\/Window&amp;gt;<\/p>\n<p>[\/code]<\/p>\n<p><strong>Point-2:<\/strong><br \/>\nIn the code behind we have to use the \u201cWebBrowser\u201d control by it\u2019s \u201cx:Name\u201d as mentioned in the desing page. (E.g x:Name=\u201dWebBrowserControlCreatePage\u201d )<\/p>\n<p>[code lang=&#8221;c&#8221;]<\/p>\n<p>using System;<br \/>\nusing System.Text;<br \/>\nusing System.Windows;<br \/>\nusing System.Threading;<br \/>\nusing System.Reflection;<br \/>\nusing System.Windows.Controls;<\/p>\n<p>using mshtml;<\/p>\n<p>namespace WpfApp1<br \/>\n{<br \/>\n\/\/\/ &amp;amp;lt;summary&amp;amp;gt;<br \/>\n\/\/\/ Interaction logic for MainWindow.xaml<br \/>\n\/\/\/ &amp;amp;lt;\/summary&amp;amp;gt;<br \/>\npublic partial class MainWindow : Window<br \/>\n{<br \/>\nbool _isPageLoadedSuccessfully = false;<br \/>\nstring _webPartPageName = string.Empty;<\/p>\n<p>public MainWindow()<br \/>\n{<br \/>\nInitializeComponent();<\/p>\n<p>\/\/Please enter the site url where you want to create the web part page<br \/>\nstring siteUrl = &#8220;http:\/\/siteurl&#8221;;<\/p>\n<p>\/\/Please enter a valid user name for authentication<br \/>\nstring userName = &#8220;Testuser&#8221;;<\/p>\n<p>\/\/Please enter valid password for the above user<br \/>\nstring password = &#8220;password&#8221;;<\/p>\n<p>string headers = string.Empty;<br \/>\n\/\/const string HTTP = &#8220;http:\/\/&#8221;;<\/p>\n<p>if (userName.Contains(&#8220;\\\\&#8221;))<br \/>\nuserName = userName.Split(&#8216;\\\\&#8217;)[1];<\/p>\n<p>\/\/ please enter page name you want to create<br \/>\nthis._webPartPageName = &#8220;CreateNewWebPartPage&#8221;;<\/p>\n<p>\/\/By navigation to the below url we can create the page programmatically<br \/>\nApplication.Current.Dispatcher.Invoke((Action)delegate<br \/>\n{<br \/>\nheaders = &#8220;Authorization: Basic &#8221; + Convert.ToBase64String(Encoding.ASCII.GetBytes(userName + &#8220;:&#8221; + password)) + Environment.NewLine;<\/p>\n<p>if (siteUrl.StartsWith(&#8220;http:\/\/&#8221;))<br \/>\nthis.WebBrowserControlCreatePage.Navigate(String.Format(&#8220;http:\/\/{0}:{1}@&#8221; + siteUrl.TrimEnd(&#8216;\/&#8217;).Replace(&#8220;http:\/\/&#8221;, &#8220;&#8221;) + &#8220;\/_layouts\/15\/spcf.aspx&#8221;, userName, password), null, null, headers);<\/p>\n<p>#region Navigate to the above refered location<br \/>\nHideScriptErrorPopUp(this.WebBrowserControlCreatePage);<br \/>\nthis.WebBrowserControlCreatePage.LoadCompleted += WebBrowserControlCreatePage_LoadCompleted;<br \/>\n#endregion<br \/>\n});<\/p>\n<p>this.lblStatus.Content = &#8220;Please wait&#8230;Creating page&#8221;;<br \/>\n}<\/p>\n<p>#region HideScriptErrorPopUp<br \/>\nprivate void HideScriptErrorPopUp(WebBrowser webbrowser)<br \/>\n{<br \/>\ntry<br \/>\n{<br \/>\nSystem.Reflection.FieldInfo fldInfo = typeof(WebBrowser).GetField(&#8220;_axIWebBrowser2&#8221;, BindingFlags.Instance | BindingFlags.NonPublic);<\/p>\n<p>if (fldInfo == null)<br \/>\nreturn;<\/p>\n<p>object obj = fldInfo.GetValue(webbrowser);<br \/>\nif (obj == null)<br \/>\nreturn;<\/p>\n<p>obj.GetType().InvokeMember(&#8220;Silent&#8221;, BindingFlags.SetProperty, null, obj, new object[] { true });<br \/>\n}<br \/>\ncatch { }<br \/>\n}<br \/>\n#endregion<\/p>\n<p>\/\/ This event will execute after webbrowser control loaded the refered location successfully<br \/>\n#region WebBrowserControlCreatePage_LoadCompleted<br \/>\nprivate void WebBrowserControlCreatePage_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)<br \/>\n{<br \/>\nHTMLDocument htmlDocument = null;<\/p>\n<p>try<br \/>\n{<br \/>\nif (!this._isPageLoadedSuccessfully)<br \/>\n{<br \/>\nhtmlDocument = (HTMLDocument)WebBrowserControlCreatePage.Document;<br \/>\nCreateWebPartPage(htmlDocument);<br \/>\n}<br \/>\n}<br \/>\ncatch { }<br \/>\n}<\/p>\n<p>\/\/ This funtuion will create the webpart programmatically using webbrowser<br \/>\nprivate void CreateWebPartPage(HTMLDocument htmlDocument)<br \/>\n{<br \/>\nIHTMLElementCollection iHtmlElementColl = null;<\/p>\n<p>try<br \/>\n{<br \/>\nif (!this._isPageLoadedSuccessfully)<br \/>\n{<br \/>\niHtmlElementColl = htmlDocument.getElementsByTagName(&#8220;input&#8221;);<\/p>\n<p>foreach (IHTMLElement iHtmlElement in iHtmlElementColl)<br \/>\n{<br \/>\ntry<br \/>\n{<br \/>\nif (iHtmlElement.getAttribute(&#8220;id&#8221;) != null &amp;amp;amp;&amp;amp;amp; iHtmlElement.getAttribute(&#8220;id&#8221;).ToString().Contains(&#8220;onetidListTitle&#8221;))<br \/>\niHtmlElement.setAttribute(&#8220;value&#8221;, this._webPartPageName, 1);<br \/>\n}<br \/>\ncatch { }<br \/>\n}<\/p>\n<p>iHtmlElementColl = htmlDocument.getElementsByTagName(&#8220;select&#8221;);<\/p>\n<p>foreach (IHTMLElement iHtmlElement in iHtmlElementColl)<br \/>\n{<br \/>\ntry<br \/>\n{<br \/>\nif (iHtmlElement.getAttribute(&#8220;id&#8221;) != null &amp;amp;amp;&amp;amp;amp; iHtmlElement.getAttribute(&#8220;id&#8221;).ToString().Contains(&#8220;onetidWebPartPageTemplate&#8221;))<br \/>\n{<br \/>\nvar dropdown = ((IHTMLElement)htmlDocument.all.item(&#8220;WebPartPageTemplate&#8221;));<br \/>\nvar dropdownItems = (IHTMLElementCollection)dropdown.children;<\/p>\n<p>foreach (IHTMLElement option in dropdownItems)<br \/>\n{<br \/>\n\/\/ Header, Footer, 3 Columns<br \/>\noption.setAttribute(&#8220;selected&#8221;, &#8220;selected&#8221;);<br \/>\nbreak;<br \/>\n}<br \/>\n}<\/p>\n<p>if (iHtmlElement.getAttribute(&#8220;id&#8221;) != null &amp;amp;amp;&amp;amp;amp; iHtmlElement.getAttribute(&#8220;id&#8221;).ToString().Contains(&#8220;onetidDocLibIDSelect&#8221;))<br \/>\n{<br \/>\nvar dropdown = ((IHTMLElement)htmlDocument.all.item(&#8220;List&#8221;));<br \/>\nvar dropdownItems = (IHTMLElementCollection)dropdown.children;<\/p>\n<p>foreach (IHTMLElement option in dropdownItems)<br \/>\n{<br \/>\nvar value = option.getAttribute(&#8220;value&#8221;).ToString();<\/p>\n<p>\/\/ Please select required library<br \/>\nif (option.innerHTML.ToLower() == &#8220;site pages&#8221;)<br \/>\n{<br \/>\noption.setAttribute(&#8220;selected&#8221;, &#8220;selected&#8221;);<br \/>\nbreak;<br \/>\n}<br \/>\n}<br \/>\n}<br \/>\n}<br \/>\ncatch { }<br \/>\n}<\/p>\n<p>iHtmlElementColl = htmlDocument.getElementsByTagName(&#8220;input&#8221;);<\/p>\n<p>foreach (IHTMLElement iHtmlElement in iHtmlElementColl)<br \/>\n{<br \/>\ntry<br \/>\n{<br \/>\nif (iHtmlElement.getAttribute(&#8220;value&#8221;) == &#8220;Create&#8221;)<br \/>\n{<br \/>\n\/\/Internally clicking the OK button to create page<br \/>\niHtmlElement.click();<br \/>\nthis._isPageLoadedSuccessfully = true;<br \/>\nThread.Sleep(5000);<\/p>\n<p>this.lblStatus.Content = &#8220;Page Created Successfully&#8221;;<br \/>\nbreak;<br \/>\n}<br \/>\n}<br \/>\ncatch { }<br \/>\n}<br \/>\n}<br \/>\n}<br \/>\ncatch { }<br \/>\n}<br \/>\n}<br \/>\n}<\/p>\n<p>[\/code]<\/p>\n<p>After the label changed to &#8220;Page Created Successfully&#8221; you can manually check the &#8220;Site Pages&#8221; library and there you can find the newly created webpart page as shown in below screenshot.<\/p>\n<p><a href=\"http:\/\/blog.softreeconsulting.com\/wp-content\/uploads\/2018\/11\/WebPartPageCreation-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-794\" src=\"https:\/\/blog.softreeconsulting.com\/wp-content\/uploads\/2018\/11\/WebPartPageCreation-1.png\" alt=\"webpartpagecreation\" width=\"1154\" height=\"460\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>This solution is brought to you by our SharePoint professionals.<\/strong><\/p>\n<p><a href=\"http:\/\/www.softreeconsulting.com\/\"><strong>Softree Consulting<\/strong><\/a>\u00a0employs SharePoint consultants; we are a technology services provider with the aim to help companies achieve exceptional performance through SharePoint. Our dedicated team of SharePoint consultants has the right bent of mind to understand and execute customer requirements.<\/p>\n<p>Be it SPFx or SharePoint add-in developments,\u00a0<strong>SharePoint 2019 developments<\/strong>, web part developments, migrating from SharePoint 2010\/2013 to SharePoint 2013\/2016\/Office 365, Office 365,\u00a0<a href=\"http:\/\/www.softreeconsulting.com\/sharepoint-azure-ad\/\">SharePoint hosted apps development<\/a>\u00a0or something else in SharePoint, we strive to deliver the best<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Basically, CSOM has not exposed any inbuilt functions which will help us in creating web part page template in SharePoint 2013\/2016\/2019. By using CSOM functions we can create wiki pages, modern pages and also publishing page but we cannot create web part pages. In this blog post I am going to use &#8220;Web Browser Control&#8221; to achieve this task. By [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[129,43],"tags":[179,180,181,182,183],"class_list":["post-748","post","type-post","status-publish","format-standard","hentry","category-all","category-sharepoint","tag-create-webpart-page-using-csom","tag-create-webpart-page-using-web-browser-control","tag-sharepoint-webpart-pages-in-csom","tag-sharepoint-webpart-pages-programmatically","tag-sharepoint-webpart-pages-using-client-object-model"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Create Web Part Page in SharePoint 2013\/2016\/2019 Programmatically using CSOM? - Softree Technology<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Create Web Part Page in SharePoint 2013\/2016\/2019 Programmatically using CSOM? - Softree Technology\" \/>\n<meta property=\"og:description\" content=\"Basically, CSOM has not exposed any inbuilt functions which will help us in creating web part page template in SharePoint 2013\/2016\/2019. By using CSOM functions we can create wiki pages, modern pages and also publishing page but we cannot create web part pages. In this blog post I am going to use &#8220;Web Browser Control&#8221; to achieve this task. By [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/\" \/>\n<meta property=\"og:site_name\" content=\"Softree Technology\" \/>\n<meta property=\"article:published_time\" content=\"2018-11-14T06:03:43+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Create Web Part Page in SharePoint 2013\/2016\/2019 Programmatically using CSOM? - Softree Technology","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/","og_locale":"en_US","og_type":"article","og_title":"How to Create Web Part Page in SharePoint 2013\/2016\/2019 Programmatically using CSOM? - Softree Technology","og_description":"Basically, CSOM has not exposed any inbuilt functions which will help us in creating web part page template in SharePoint 2013\/2016\/2019. By using CSOM functions we can create wiki pages, modern pages and also publishing page but we cannot create web part pages. In this blog post I am going to use &#8220;Web Browser Control&#8221; to achieve this task. By [&hellip;]","og_url":"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/","og_site_name":"Softree Technology","article_published_time":"2018-11-14T06:03:43+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/#article","isPartOf":{"@id":"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/"},"author":{"name":"admin","@id":"https:\/\/softreetechnology.com\/blog\/#\/schema\/person\/98740297642f06debccdcee2de84086b"},"headline":"How to Create Web Part Page in SharePoint 2013\/2016\/2019 Programmatically using CSOM?","datePublished":"2018-11-14T06:03:43+00:00","mainEntityOfPage":{"@id":"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/"},"wordCount":1004,"commentCount":0,"publisher":{"@id":"https:\/\/softreetechnology.com\/blog\/#organization"},"image":{"@id":"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.softreeconsulting.com\/wp-content\/uploads\/2018\/11\/WebPartPageCreation-1.png","keywords":["Create webpart page using CSOM","Create webpart page using Web Browser Control","SharePoint Webpart pages in CSOM","SharePoint webpart pages programmatically","SharePoint Webpart pages using client object model"],"articleSection":["All","SharePoint"],"inLanguage":"en","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/","url":"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/","name":"How to Create Web Part Page in SharePoint 2013\/2016\/2019 Programmatically using CSOM? - Softree Technology","isPartOf":{"@id":"https:\/\/softreetechnology.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/#primaryimage"},"image":{"@id":"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.softreeconsulting.com\/wp-content\/uploads\/2018\/11\/WebPartPageCreation-1.png","datePublished":"2018-11-14T06:03:43+00:00","breadcrumb":{"@id":"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/"]}]},{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/#primaryimage","url":"https:\/\/blog.softreeconsulting.com\/wp-content\/uploads\/2018\/11\/WebPartPageCreation-1.png","contentUrl":"https:\/\/blog.softreeconsulting.com\/wp-content\/uploads\/2018\/11\/WebPartPageCreation-1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/softreetechnology.com\/blog\/sharepoint\/create-web-part-page-sharepoint-2013-programmatically-using-csom\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/softreetechnology.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Create Web Part Page in SharePoint 2013\/2016\/2019 Programmatically using CSOM?"}]},{"@type":"WebSite","@id":"https:\/\/softreetechnology.com\/blog\/#website","url":"https:\/\/softreetechnology.com\/blog\/","name":"Softree Technology","description":"Celebrating 10+ Years in SharePoint Consulting !","publisher":{"@id":"https:\/\/softreetechnology.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/softreetechnology.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"},{"@type":"Organization","@id":"https:\/\/softreetechnology.com\/blog\/#organization","name":"Softree Technology","url":"https:\/\/softreetechnology.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/softreetechnology.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/softreetechnology.com\/blog\/wp-content\/uploads\/2023\/03\/cropped-white-logo-soft.png","contentUrl":"https:\/\/softreetechnology.com\/blog\/wp-content\/uploads\/2023\/03\/cropped-white-logo-soft.png","width":844,"height":230,"caption":"Softree Technology"},"image":{"@id":"https:\/\/softreetechnology.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/softreetechnology.com\/blog\/#\/schema\/person\/98740297642f06debccdcee2de84086b","name":"admin","image":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/softreetechnology.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6fc78c8a7aa3fb0bf43c3b9a2e3962d7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6fc78c8a7aa3fb0bf43c3b9a2e3962d7?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/softreeconsulting.com"],"url":"https:\/\/softreetechnology.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/softreetechnology.com\/blog\/wp-json\/wp\/v2\/posts\/748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/softreetechnology.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/softreetechnology.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/softreetechnology.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/softreetechnology.com\/blog\/wp-json\/wp\/v2\/comments?post=748"}],"version-history":[{"count":0,"href":"https:\/\/softreetechnology.com\/blog\/wp-json\/wp\/v2\/posts\/748\/revisions"}],"wp:attachment":[{"href":"https:\/\/softreetechnology.com\/blog\/wp-json\/wp\/v2\/media?parent=748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/softreetechnology.com\/blog\/wp-json\/wp\/v2\/categories?post=748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/softreetechnology.com\/blog\/wp-json\/wp\/v2\/tags?post=748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}