<br />
<b>Deprecated</b>:  YoastSEO_Vendor\Symfony\Component\DependencyInjection\Container::__construct(): Implicitly marking parameter $parameterBag as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/symfony/dependency-injection/Container.php</b> on line <b>60</b><br />
<br />
<b>Deprecated</b>:  YoastSEO_Vendor\League\OAuth2\Client\Provider\AbstractProvider::authorize(): Implicitly marking parameter $redirectHandler as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/league/oauth2-client/src/Provider/AbstractProvider.php</b> on line <b>416</b><br />
<br />
<b>Deprecated</b>:  YoastSEO_Vendor\GuzzleHttp\Client::getConfig(): Implicitly marking parameter $option as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/guzzlehttp/guzzle/src/Client.php</b> on line <b>181</b><br />
<br />
<b>Deprecated</b>:  YoastSEO_Vendor\GuzzleHttp\ClientInterface::getConfig(): Implicitly marking parameter $option as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/guzzlehttp/guzzle/src/ClientInterface.php</b> on line <b>77</b><br />
{"id":1969,"date":"2013-05-22T11:46:00","date_gmt":"2013-05-22T09:46:00","guid":{"rendered":"https:\/\/blog.sharedove.com\/adisjugo\/?p=1969"},"modified":"2013-05-22T11:46:00","modified_gmt":"2013-05-22T09:46:00","slug":"posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else","status":"publish","type":"post","link":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/","title":{"rendered":"Posting on SharePoint 2013 newsfeed on behalf of someone else"},"content":{"rendered":"<p>It is a common requirement in the enterprise social scenarios, to post on to SharePoint newsfeed on behalf on someone else. Those reasons are mainly in the domain of the social governance, or implementing internal procedures. Just think of automatic admin posts to the site feeds, in the case of important breaches of internal procedures. Or, think of a common practice of posting as bot user on personal feed \u2013 let\u2019s say, there is a bot CRM user, which automatically posts to it\u2019s newsfeed all important sales events which are coming from the CRM system.<\/p>\n<p>SharePoint 2013 client object model does not give us an opportunity to post on behalf of someone else. For this purpose, we need to use SharePoint 2013 server object model, which is all but good documented (at least at the moment). <\/p>\n<p><!--more--><\/p>\n<p>For this purpose, we will make an use of few classes from the \u201c<strong>Microsoft.Office.Server.Social<\/strong>\u201d namespace.<\/p>\n<p><strong>SPSocialFeedManager<\/strong> is the class which contains most important methods for manipulating feeds for any user. <strong>SPSocialPostCreationData<\/strong> contains information about a single post. <strong>SPSocialDataItem<\/strong> contains information about social actors associated with a social post.&#160; With <strong>SPSocialAttachment<\/strong>, we can add attachments to social posts. And if you would like to specify your own application as a poster to the newsfeed (something like \u201cPosted by my cool app\u201d), you will make a use of the <strong>SPSocialLink<\/strong> class. <\/p>\n<p>Since all this is happening in an user context, we will need to use <strong>UserProfileManager<\/strong> from the <strong>Microsoft.Office.Server.UserProfiles<\/strong> namespace.<\/p>\n<p>For this to work, it is important to remember the feed structure \u2013 I was writing about it in one of my pervious posts:<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2013\/10\/Feed.png\"><img loading=\"lazy\" decoding=\"async\" title=\"Feed\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"Feed\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2013\/10\/Feed_thumb.png\" width=\"424\" height=\"292\" \/><\/a><\/p>\n<p>Any feed \u2013 personal or site feed \u2013 contains a number of threads. Each thread contains an array of social actors. It is very important that those actors are found in array in that particular order, in which they appear in the thread. That order is the only way for SharePoint 2013 feed to know which social actor comes at which position inside the thread. Each thread contains at least one root post, and any number of replies. Post \u2013 root or reply \u2013 contain info about the author, likes, post body, and eventual attachments. <\/p>\n<p>So let\u2019s look how does it work in practice. <\/p>\n<p>Please take a look at the code below, the whole thing is explained in the inline comments (that\u2019s where it belongs, anyway <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-winkingsmile\" style=\"border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-style: none\" alt=\"Winking smile\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2013\/10\/wlEmoticon-winkingsmile.png\" \/>)<\/p>\n<pre class=\"brush: csharp; title: Code sample:; notranslate\" title=\"Code sample:\">\nusing (SPSite site = new SPSite(contextSiteName))\n{\n    \n    string username = &quot;sharedove\\someuser&quot;;\n    \n    SPServiceContext context = SPServiceContext.GetContext(site);\n\n    UserProfileManager profileManager = new UserProfileManager(context);\n\n    if (profileManager.UserExists(username))\n    {\n        UserProfile userProfile = profileManager.GetUserProfile(username);\n    } else {\n        \/\/ Oops. User that you want to post on behalf of, can not be found\n        \/\/ You would do something really clever here in production.\n        return; \n    }\n\n    \/\/get the Social Feed Manager in the context of the requested user\n    SPSocialFeedManager feedManager = new SPSocialFeedManager(userProfile, context);\n\n\t\t\/\/Create SPSocialPostCreationData object for a new social post\n    SPSocialPostCreationData postCreationData = new SPSocialPostCreationData();\n\t\t\n    \/\/set the body of the post. Note the arguments, and their order. \n    postCreationData.ContentText = &quot;Hello, the user {0} is going to be mentioned here. We will also have a link {1}, and a tag {2}&quot;;\n\n    \/\/now we need to add the social actors (SPSocialDataItem), in the same order we have the arguments in the post body:\n    \n    \/\/let's first mention an user\n    SPSocialDataItem socialDataMentionItem = new SPSocialDataItem();\n    socialDataMentionItem.ItemType = SPSocialDataItemType.User;\n    socialDataMentionItem.AccountName = &quot;sharedove\\mentionedUser&quot;;\n\n    \/\/Add mention to the PostCreationDataContentItems\n    Array.Resize(ref postCreationData.ContentItems, postCreationData.ContentItems.Length + 1);\n    postCreationData.ContentItems&#x5B;postCreationData.ContentItems - 1] = socialDataMentionItem;\n\n    \n    \/\/Next, add a link as SPSocialDataItem to the postCreationData\n    SPSocialDataItem socialDataLinkItem = new SPSocialDataItem();\n    socialDataLinkItem.ItemType = SPSocialDataItemType.Link;\n    socialDataLinkItem.Text = &quot;Adis Jugo Blog&quot;;\n    socialDataLinkItem.Uri = new Uri(&quot;https:\/\/blog.sharedove.com\/adisjugo\/&quot;);\n\n    \/\/Add social link item to the PostCreationDataContentItems\n    Array.Resize(ref postCreationData.ContentItems, postCreationData.ContentItems.Length + 1);\n    postCreationData.ContentItems&#x5B;postCreationData.ContentItems - 1] = socialDataLinkItem;\n    \n    \/\/As the last (third) social item, add a tag\n    string myTag=&quot;#blogpost&quot;;\n    \n    \/\/Now, since the hashtags are actually stored in the TermStore (Managed Metadata Service), in order this to work,\n    \/\/we need to add our tag there:\n    SPSecurity.RunWithElevatedPrivileges(delegate\n    {\n        using (SPSite elevatedSiteCollection = new SPSite(site.ID))\n        {\n            TermSet settingsTermSet = null;\n            \n            \/\/create a taxonomy session\n            TaxonomySession session = new TaxonomySession(elevatedSiteCollection, true);\n\n            \/\/ obtain the term store\n            TermStore store = session.DefaultSiteCollectionTermStore;\n\n            \/\/get the groups\n            GroupCollection groups = store.Groups;\n\n            \/\/ get the System taxonomy group\n            Group settingsGroup = store.Groups.Where(x =&gt; x.Name == &quot;System&quot;).FirstOrDefault();\n\n\t\t\t\t\t\t\/\/get the Hashtags termset\n            hashTermSet = settingsGroup.TermSets.Where(x =&gt; x.Name == &quot;Hashtags&quot;).FirstOrDefault();\n\n            \/\/and now, try to get our tag from the termset\n            hashtagTerm = hashTermSet.Terms.Where(x =&gt; x.Name == myTag).FirstOrDefault();\n            \n            \/\/or create it if it does not exist\n            if (hashtagTerm == null)\n            {\n                hashtagTerm = hashTermSet.CreateTerm(termName, hashTermSet.TermStore.DefaultLanguage);\n\n                hashtagTerm.IsAvailableForTagging = true;\n\n                \/\/ commit it all\n                hashTermSet.TermStore.CommitAll();\n            }\n\n        }\n     });\n    \n\n     \/\/ Now, when we have a hashtag term, let's add it to the social post\n     SPSocialDataItem socialDataTagItem = new SPSocialDataItem();\n     socialDataTagItem.ItemType = SPSocialDataItemType.Tag;\n     socialDataTagItem.Text = tag;\n     socialDataTagItem.TagGuid = hashtagTerm.Id;\n\n     \/\/Add the tag to the PostCreationDataContentItems\n     Array.Resize(ref postCreationData.ContentItems, postCreationData.ContentItems.Length + 1);\n     postCreationData.ContentItems&#x5B;postCreationData.ContentItems - 1] = socialDataTagItem;\n\n     \/\/On the end, add an attachemt to the social post\n     string attachment = &quot;http:\/\/mysite\/photo.jpg&quot;;\n     SPSocialAttachment statusAttachment = new SPSocialAttachment();\n     \n     \/\/Now, determine the attachment type. SharePoint will display on different ways videos, photos, and images attachments.\n     if (attachment.ToUpper().EndsWith(&quot;JPG&quot;) || attachment.ToUpper().EndsWith(&quot;JPEG&quot;) || attachment.ToUpper().EndsWith(&quot;PNG&quot;) || attachment.ToUpper().EndsWith(&quot;GIF&quot;))\n     {\n         statusAttachment.AttachmentKind = SPSocialAttachmentKind.Image;\n     }\n     else if (attachment.ToUpper().EndsWith(&quot;WMV&quot;) || attachment.ToUpper().EndsWith(&quot;MP4&quot;) || attachment.ToUpper().EndsWith(&quot;AVI&quot;) || attachment.ToUpper().EndsWith(&quot;MPEG&quot;))\n     {\n         statusAttachment.AttachmentKind = SPSocialAttachmentKind.Video;\n     }\n     else\n     {\n         statusAttachment.AttachmentKind = SPSocialAttachmentKind.Document;\n     }\n\n     statusAttachment.Uri = new Uri(attachment);\n     statusAttachment.Name = &quot;Look here&quot;;\n     postCreationData.Attachment = statusAttachment;\n\n\n     \/\/set the posting &quot;app&quot; (actually, anything can go here);\n     postCreationData.Source = new SPSocialLink() { Uri = new Uri(&quot;http:\/\/blog.sharedove.com&quot;), Text = &quot;ShareDove cool social app&quot;};\n\n     \/\/create the post in feed of the user, in whose context we have created SPFeedManager. \n     \/\/That's why we leave null here. \n     feedManager.CreatePost(null, postCreationData);\n     \n     \/\/For the site feed, we would put SharePoint site in the CreatePost:\n     feedManager.CreatePost(&quot;http:\/\/sharepointserver\/sites\/somesite\/&quot;, postCreationData);\n \n}\n<\/pre>\n<div class=\"fb-background-color\">\n\t\t\t  <div \n\t\t\t  \tclass = \"fb-comments\" \n\t\t\t  \tdata-href = \"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/\"\n\t\t\t  \tdata-numposts = \"59\"\n\t\t\t  \tdata-lazy = \"true\"\n\t\t\t\tdata-colorscheme = \"light\"\n\t\t\t\tdata-order-by = \"time\"\n\t\t\t\tdata-mobile=true>\n\t\t\t  <\/div><\/div>\n\t\t  <style>\n\t\t    .fb-background-color {\n\t\t\t\tbackground:  !important;\n\t\t\t}\n\t\t\t.fb_iframe_widget_fluid_desktop iframe {\n\t\t\t    width: 100% !important;\n\t\t\t}\n\t\t  <\/style>\n\t\t  ","protected":false},"excerpt":{"rendered":"<p>It is a common requirement in the enterprise social scenarios, to post on to SharePoint newsfeed on behalf on someone else. Those reasons are mainly in the domain of the social governance, or implementing internal procedures. Just think of automatic admin posts to the site feeds, in the case of important breaches of internal procedures. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[11],"tags":[57,61],"class_list":["post-1969","post","type-post","status-publish","format-standard","hentry","category-development","tag-sharepoint2013","tag-social"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Posting on SharePoint 2013 newsfeed on behalf of someone else - Adis Jugo blog<\/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:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Posting on SharePoint 2013 newsfeed on behalf of someone else - Adis Jugo blog\" \/>\n<meta property=\"og:description\" content=\"It is a common requirement in the enterprise social scenarios, to post on to SharePoint newsfeed on behalf on someone else. Those reasons are mainly in the domain of the social governance, or implementing internal procedures. Just think of automatic admin posts to the site feeds, in the case of important breaches of internal procedures. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/\" \/>\n<meta property=\"og:site_name\" content=\"Adis Jugo blog\" \/>\n<meta property=\"article:published_time\" content=\"2013-05-22T09:46:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2013\/10\/Feed_thumb.png\" \/>\n<meta name=\"author\" content=\"adis.jugo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"adis.jugo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/\",\"url\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/\",\"name\":\"Posting on SharePoint 2013 newsfeed on behalf of someone else - Adis Jugo blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2013\/10\/Feed_thumb.png\",\"datePublished\":\"2013-05-22T09:46:00+00:00\",\"author\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/#primaryimage\",\"url\":\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2013\/10\/Feed_thumb.png\",\"contentUrl\":\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2013\/10\/Feed_thumb.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.sharedove.com\/adisjugo\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Posting on SharePoint 2013 newsfeed on behalf of someone else\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#website\",\"url\":\"https:\/\/blog.sharedove.com\/adisjugo\/\",\"name\":\"Adis Jugo blog\",\"description\":\"The Southern Side\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.sharedove.com\/adisjugo\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c\",\"name\":\"adis.jugo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g\",\"caption\":\"adis.jugo\"},\"url\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/author\/adisjugo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Posting on SharePoint 2013 newsfeed on behalf of someone else - Adis Jugo blog","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:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/","og_locale":"en_US","og_type":"article","og_title":"Posting on SharePoint 2013 newsfeed on behalf of someone else - Adis Jugo blog","og_description":"It is a common requirement in the enterprise social scenarios, to post on to SharePoint newsfeed on behalf on someone else. Those reasons are mainly in the domain of the social governance, or implementing internal procedures. Just think of automatic admin posts to the site feeds, in the case of important breaches of internal procedures. [&hellip;]","og_url":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/","og_site_name":"Adis Jugo blog","article_published_time":"2013-05-22T09:46:00+00:00","og_image":[{"url":"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2013\/10\/Feed_thumb.png","type":"","width":"","height":""}],"author":"adis.jugo","twitter_card":"summary_large_image","twitter_misc":{"Written by":"adis.jugo","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/","url":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/","name":"Posting on SharePoint 2013 newsfeed on behalf of someone else - Adis Jugo blog","isPartOf":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/#primaryimage"},"image":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2013\/10\/Feed_thumb.png","datePublished":"2013-05-22T09:46:00+00:00","author":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c"},"breadcrumb":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/#primaryimage","url":"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2013\/10\/Feed_thumb.png","contentUrl":"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2013\/10\/Feed_thumb.png"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2013\/05\/22\/posting-on-sharepoint-2013-newsfeed-on-behalf-of-someone-else\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.sharedove.com\/adisjugo\/"},{"@type":"ListItem","position":2,"name":"Posting on SharePoint 2013 newsfeed on behalf of someone else"}]},{"@type":"WebSite","@id":"https:\/\/blog.sharedove.com\/adisjugo\/#website","url":"https:\/\/blog.sharedove.com\/adisjugo\/","name":"Adis Jugo blog","description":"The Southern Side","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.sharedove.com\/adisjugo\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c","name":"adis.jugo","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g","caption":"adis.jugo"},"url":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/author\/adisjugo\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/posts\/1969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/comments?post=1969"}],"version-history":[{"count":0,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/posts\/1969\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/media?parent=1969"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/categories?post=1969"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/tags?post=1969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}