Regarding to this Question link.
How can i change the siteLogo to a new one?
Is it even possible to do it from a ConsoleApplication via CSOM?
Regarding to this Question link.
How can i change the siteLogo to a new one?
Is it even possible to do it from a ConsoleApplication via CSOM?
It looks like there are no hooks to the site logo in the client object model like there is in the regular object model. (site.RootWeb.SiteLogoUrl = pictureUrl;
)
I couldn't find a way to do it using the CSOM but you can create a new site collection scoped (for SharePoint Online) feature with an event receiver and deploy it as a solution. It worked for me and saved me manually updating 380 sites. I had the FeatureActivated method recursively set the logo on the root web of the site collection and all of the sub webs. Here is the code:
public class Feature1EventReceiver : SPFeatureReceiver
{
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPSite site = properties.Feature.Parent as SPSite;
if (site != null)
{
SPWeb web = site.RootWeb;
SetLogo(web);
}
}
private void SetLogo(SPWeb web) {
web.SiteLogoUrl = "/SiteAssets/logo.png";
web.Update();
foreach (SPWeb subweb in web.Webs)
{
SetLogo(subweb);
}
}
}