There are times when we want to know whether My Site exist for a particular user. In general, My Site is created when a user accesses the My Site (i.e. the “About Me” link) for the first time. For more details on My Site architecture check this msdn link.
Using CSOM, we can fetch a particular user’s my site link. The code for that is:
The above code returns my site url of the user but if my site does not exist then also it returns the my site host url of that user. So, in this case the url returned is something like:
This does not tell us whether my site actually exist or not unless we do some url manipulation. But there is a peroperty in the same code which returns my site relative url only if it exists and that property is PersonalSpace. This is present in UserProfileProperties of PeopleManager class.
The code to fetch that is :
This will return blank if my site does not exist else will return /personal/email_of_user
P.S. The code above could also be used in apps, just give Read permission to User Profile.