I'm trying to do the seemingly simple task of writing changes to a user profile in SharePoint 2013 / Office 365.
Client APIs - nope, user profile is read-only
Sandbox Solution - nope (I think), no way of passing data to the server side to take advantage of the server API; no application pages
Farm Solution - not on SP Online
So finally I thought of the SharePoint Web Services. I could access programatically from the client-side of the page needing to update the profile, or write a WCF service/Web Api project, hosted in Azure, and call that from the page.
Those SP Web Services though... They have been deprecated since 2010, but still there in 2013 it seems. However, documentation seems dire at best: http://msdn.microsoft.com/en-us/library/jj193051.aspx
I have added a service reference to the User Profile / User Profile Changes services, but no matter what 'basic' credentials I specify, I get 'Attempt to perform an unauthorised operation' exception.
I've tried username in the form of
i:email@example.com and just the email address part of the above. No matter what I try there or what account name I try to pass into
GetUserProfileByName (for example), I get the same exception.
So: I need to write to the user profile on my SharePoint 2013, Office 365 site. What are my options? Is there a way to call the Web Services which is just not easily googled, or another simpler option I've missed?